很简单,我想知道的是,是否有任何方法可以干净地对这段代码进行单元测试?我可以实例化它并运行一些断言,但我的意思是实际的单元测试,我将模拟服务对象以删除被测类的任何依赖关系,实际上让它只测试这个类而不是它的依赖服务(在本例中为 ConcreteService)。
public class Foo{
public SomeResult DoSomething(){
var service = new ConcreteService();
var foo = service.Execute();
return foo;
}
}
我通常的方法是在我的代码主体中不创建这种类型的对象,但在无法更改的情况下,我有哪些单元测试选项?
最佳答案
鉴于限制(您不能修改/重新编译该代码),恐怕除了“集成测试”之外您无能为力 - 真正的依赖关系,缓慢的测试.
在方法中实例化依赖项,而不是将其接受为构造函数或方法参数会使事情变得困难。
正如 Ethan 所说,有痣(但对我个人而言,这似乎不对)。我更喜欢设计更改,而不是帮助我掩盖设计问题的框架。
关于c# - 使用在代码体中声明的具体类的单元测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6196150/