Learn something new every day.
- I am a senior software engineer working in industry, teaching and writing on software design, SOLID principles, DDD and TDD.
Location
Buenos Aires
Education
Computer Science Degree at Universidad de Buenos Aires
It depends on what you call a unit I think, bit you're right. If the DieselEngine is testable at all (could be a real DieselEngine which is not availabe during CI test run, etc).
Learn something new every day.
- I am a senior software engineer working in industry, teaching and writing on software design, SOLID principles, DDD and TDD.
Location
Buenos Aires
Education
Computer Science Degree at Universidad de Buenos Aires
"Why not test the Car with a DieselEngine ?" - This is idea behind unit tests :) to have a single unit under the test.
If you do unit testing in your project - you will always have two implementations of your interfaces.
"This is a real business scenario" - Testing of business scenarios is just an another kind of tests.
Right !
You have two interfaces realizations. Therefore this code smell does not apply anymore
Yes feel free.
It depends on what you call a unit I think, bit you're right. If the DieselEngine is testable at all (could be a real DieselEngine which is not availabe during CI test run, etc).
Build your abstractions with TDD so they will be testaable from their inception