To be nitpicking, the unit test is an automatic test that tests a single unit . If you combine two or more units, this is not a unit test, this is an integration test.
However, depending on the type of units you are integrating, having a large number of similar integration tests can be quite normal.
Krzysztof Kozmic recently wrote a blog post about this, where he describes how Windsor Castle has very few unit tests , but many integration tests. AutoFixture also has a large share of these types of integration tests. I think the most important point is that, as a rule, integration should not cross the boundaries of libraries .
In any case, you can view the actual implementation as the extreme end of the Test Double Continuum , just as there are scenarios where it makes sense to use Stubs, Mocks, Spies or Fakes, there are also scenarios where the actual implementation may make sense .
However, keep in mind that you no longer test the unit in isolation , so you introduce a relationship between units that make it difficult to change each of them independently .
In conclusion, I still consider it a smell, because there should always be a reason to stop and think. However, the smell indicates nothing more, and sometimes, as soon as you think it over, you may decide to move forward.
Mark seemann
source share