所以我有,看起来像一个辅助方法如下:我需要测试助手/设置方法吗?
private D GetInstanceOfD(string param1, int param2)
{
A a = new A();
B a = new B();
C c = new C(a,b, param1);
return new D(c, param2);
}
这只是一个方便的辅助方法,我可以叫抢一个特定的对象,我需要而不是记住我需要哪些依赖挂钩以获取我需要的对象。
我的第一个问题是:应该像这些方法进行测试?我能想到要测试这些类型的方法的唯一原因是确保使用正确的依赖关系并正确设置。
如果第一个问题的答案是肯定的,我的第二个问题是:如何?我目前正在使用NUnit和RhinoMocks,并试图弄清楚这种方法如何被重构为可测试的(好吧,是否应该测试这样的东西!);显然,依赖注入在这里不起作用,因为这个方法实际上创建了依赖关系!
或正在使用这种方法不好的做法,我应该做类似以下内容:
D d = new (new C(new A(), new B(), "string"), 1024);
一般来说,我的私有方法是由于重构使代码保持DRY或方法很小而产生的。在这种情况下,代码实际上可能已经在重构之前通过现有测试进行了测试。在这种情况下,我通常不会直接为此方法编写测试,而是依赖现有测试和任何新的公共方法测试。情况并非总是如此,我对使用反射/访问器测试的私有方法进行了一些测试,但通常情况下,我只测试公共接口,因此我的测试不会不必要地耦合到类的内部。 – tvanfosson 2009-06-17 03:10:50