【发布时间】:2012-02-02 23:21:01
【问题描述】:
给定一个抽象工厂实现:
public class FooFactory : IFooFactory {
public IFoo Create(object param1, object param2) {
return new Foo(param1, param2);
}
}
将为这个类编写哪些单元测试?如何验证 param1 和 param2 是否已转发到 Foo 的创建?我必须制作 Foo 的这些公共属性吗?那不会破坏封装吗?还是我应该把它留给集成测试?
【问题讨论】:
-
单元测试应该取决于被测试组件的功能需求和期望。如果没有上下文的其余部分,我看不到对该类进行单元测试的任何价值。
-
@ivowiblo 我认为您将单元测试与 BDD 样式测试混淆了。如果您不为此单元编写测试,那么您怎么知道它是否有效?
-
进行单元测试,但您将测试什么?该单位的期望是什么?我说我看不到在不知道其他任何东西的情况下对该类进行单元测试的价值。仅仅因为进行单元测试而进行单元测试根本没有意义。测试(单元、行为、完整的功能,无论你想要什么)都应该始终由期望和要求驱动。如果不是,那只是势利(如果这个词存在的话)。
-
@ivowiblo 测试确保将正确的参数传递给创建 Foo。
-
除了提高覆盖率之外,还有什么价值?
标签: c# dependency-injection abstract-factory