…or am I oversimplifying?
And if I am oversimplifying, what really is integration testing, and why is it dramatically less a topic of conversation than unit testing*?
*Evidence – How often each tag is used on StackOverflow:
- Unit Testing – 8,595
- Integration Testing – 557
You’re… roughly right, but there’s a lot of interpretation about this topic. Unit testing can be (relatively) cleanly defined as testing of components in isolation for explicit functionality; from what I’ve seen, integration testing gets defined as “pretty much everything else”. That’s not to say there’s not a well-defined place for it; even with good interface design, compatible components have nice and clean integration functionality, and that integration functionality can and should be tested independent of individual unit tests. It’s just that sometimes, tests begin to blur the line between unit and integration test. At the very least, you can usually look at a test, and say “can this be decomposed into something simpler”, and if not, you can usually define it as a unit test; if you can’t do that, however, those seem to usually get lumped as integration tests.