The Curious Case of Tautological TDD

No. The argument is perhaps more dogmatic than deep, but not long. Let me draft it here, and we'll see whether it expands into its own article.

I want to check two things: (1) the Service answers to its clients the same Collection of Cars that it gets from the Repository; (2) the Service uses the service header from the Supplier in order ask the Repository for all the Cars.

Test 1 checks a return value and test 2 checks a method expectation. In principle, I could change these things independently; therefore, I "ought" to test them separately. The assertions (the return value is correct; the expectation is correct) are unrelated; therefore, I "ought" to check them separately.

I would check these two behaviors separately precisely because the guideline "check one thing in each test" has helped me identify so many design risks in the past, and maybe I just don't yet see the design risk that this test is alerting me to. I don't know yet.

That's the entire argument. I would tend to write one test, but be prepared to split it into two tests later, when I want to change one aspect of that behavior without changing the other.