Hi list, I'll describe the situation in as little detail as possible. There's some code in which a class BaseClass, and a class ClassForUse : BaseClass are defined.
BaseClass is used in a unit test that calls its constructor with mocks. ClassForUse is used in production with a 0-param constructor which calls the base constructor with hard-coded arguments. Forgetting (for now) any issues with all this (and to me there are plenty), we then find the following unit test: [Setup] var _instance = new ClassForUse(); [Test] Assert.That(_instance is BaseClass); ...to me this is totally insane. But I seem unable to articulate exactly the nature of the insanity. A little further on we have (pseudocode) [Test] Assert _instance._MemberOne is of type A Assert _instance._MemberTwo is of type B Assert _instance._MemberThree is of type C where the members are (if not for the tests) private members set by the 0-param constructor which pushed them into the base constructor. (all hard coded). So...is this really insane, or is it I who am crazy?? It's made more perplexing to me because the author of this code says it's all a natural result of TDD. And I am far from a TDD expert. I would love some feedback about this Modus Operandi. esp. any refs. It seems obviously wrong, and yet I am unable to come up with any definitive argument. Thanks, Tristan.
