Unity中依赖属性的单元测试

本文关键字:单元测试 属性 依赖 Unity | 更新日期: 2023-09-27 18:15:23

我目前使用Unity, Rhinomocks, MVC4, MS Test.

是否有可能对使用如下依赖属性的类进行单元测试?

public class MyClass
{
 [Dependency]
 public IMyInterface MyObject { get; set; }
}

"
或者构造函数注入是唯一可行的方法?

Unity中依赖属性的单元测试

为什么要在单元测试中使用DependencyResolver ?

如果你想用真正的IMyInterface实现来测试MyClass,例如

MyClass instance = new MyClass
{
    // instantiate MyObject
}

或者如果您想模拟MyObject,请使用RhinoMocks:

var mocks= new MockRepository();
MyClass instance = new MyClass
{
    MyObject = mocks.DynamicMock<IMyInterface>();
} 

DynamicMock是一个Stub,它将返回默认值,除非您设置了期望。或者您可以使用StrictMock,如果以任何方式使用它而没有设置期望,则会抛出异常。看看这篇文章