Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

3
  • 2
    In sufficiently large systems with many states, logic and moving parts, both would be needed as integration tests can only cover "some representative test cases" due to impracticality of covering all possible combinations of execution paths (the phenomenon of combinatorial explosion) due to slowness. Unit tests try to cover the components underneath. (This comment is merely a response to your closing remark. It is not an expression of disagreement.) Commented Aug 6, 2015 at 8:41
  • 1
    @rwong except that you still have to find some way to test the combinations of execution paths - even though a unit works perfectly, it can still fail when combined with another unit. So even with hugely complex systems, you still need a full integration test suite. But unit tests help, its just that they're not the one and only form of test that should be used - which is really my point to the juniors who may get the wrong impression from various sources that unit testing is all they need. Commented Aug 7, 2015 at 12:24
  • Is it even worth it to test stuff that's not used anyway ? I'm talking about use cases which your functional tests don't cover since these paths simply don't exist in the application specifications. Which makes me wonder about the usefulness of unit testing if functional testing is enough to cover the application specifications. Commented May 10, 2017 at 21:40