c# - 使用在代码体中声明的具体类的单元测试类

标签 c# .net unit-testing dependency-injection

很简单,我想知道的是,是否有任何方法可以干净地对这段代码进行单元测试?我可以实例化它并运行一些断言,但我的意思是实际的单元测试,我将模拟服务对象以删除被测类的任何依赖关系,实际上让它只测试这个类而不是它的依赖服务(在本例中为 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/

相关文章:

c# - 如何在C#中将我的线程(用户定义的线程)置于 sleep 模式?

c# - 分析用户资格数据的最佳方式(C# 和 SQL 服务器)

c# - MS Visual Studio 2012 Ultimate - 调试器 .NET 版本

.net 文件大小对大文件使用 FileInfo

c# - 为什么适配器不工作?

.net - 当无法进行参数化查询时,在 SQL 中查询日期的最佳做法是什么

c# - 包装 DLL - 了解导入失败的原因

unit-testing - 如何在grails 2.2.4中模拟 Controller 中的私有(private)方法

java - 在 JUnit 4.11 中找不到类

unit-testing - Visual Studio 测试资源管理器窗口将无法打开