|
|
1
4
Dependency Injection 是您正在寻找的解决方案。一般的问题与您的依赖关系的创建位置有关。通常,在编写面向对象的程序时,自然的本能是直接在需要依赖项的位置使用new关键字创建依赖项。有时您可以在构造函数中创建长期依赖项。 要使类更具单元可测试性,您需要“反转”该规范,并从外部创建依赖项(或创建工厂/提供者/上下文,该工厂/提供者/上下文可反过来被注入并用于创建其他依赖项的实例),并将这些依赖项“注入”到类中。两种最常见的注入机制要么作为构造函数的参数,要么具有setter属性。通过以这种方式将依赖项管理外部化,您可以轻松地创建这些依赖项的模拟版本并将其传入,从而允许您在完全独立于应用程序其余部分的情况下测试代码单元。 为了支持依赖注入并使控制反转(IOC)容器的管理变得更容易,已经出现了。IOC容器是一个框架,它允许您独立于参与这些图的类来配置依赖关系图。一旦配置了依赖关系图(通常基于感兴趣的单键类),您就可以轻松地在运行时创建对象的实例,而无需担心手动创建所有必需的依赖关系。这有助于创建非常松散耦合、易于重新配置的灵活代码。一个非常好的IOC容器的例子是 Castle Windsor 这为通过依赖注入连接类提供了一个非常丰富的框架。 依赖注入的一个非常简单的例子如下:
|
|
|
2
1
Dependency Injection 是一个伟大的原则,它允许您通过定义 mock objects 在需要的地方。 基本上,这个想法是你将任何依赖传递给一个对象,它不会创建自己的对象来操作。 |
|
|
3
-1
使用模拟框架提供测试数据
|
|
|
wavesinaroom · 断言结构向量长度 1 年前 |
|
|
Tim Kirkwood · 比较空数据帧 1 年前 |
|
Kamran Khan · 使用单元测试ASP。NET核心 1 年前 |
|
|
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 1 年前 |
|
|
Ricky Mo · 角度测试如何模拟导入的const 2 年前 |
|
|
Natty · Visual Studio中缺少“代码覆盖率结果” 2 年前 |