依赖注入的好处 - 使用模拟数据进行测试?

时间:2014-04-01 06:09:08

标签: dependency-injection

我宣读了依赖注入的好处, 我无法理解的一件事是

"可以使用模拟数据轻松完成DI测试"

无法清楚地了解如何使用模拟数据进行测试?

如何进行测试?

有人可以用简单的例子来解释吗?

1 个答案:

答案 0 :(得分:0)

当你有这个类构造函数时:

Client(Service service) {
 this.service = service;

}

您使用DI来解耦对象依赖项(在这种情况下,客户端具有服务强依赖性),因此您应用DI的基本形式:

Client(IService service){
 this.service = service;

}

其中service现在是实现IService接口的每个对象 测试此类时,您可以通过模拟对象轻松地检测此服务依赖性:

private MockRepository _mocks;


    [SetUp]
    public void initialize()
    {
        _mocks = new MockRepository();            
    }

    [Test]
    public void should_be_able_to_get_the_right_work() 
    {
        var myMockedservice = _mocks.DynamicMock<IService>();

        var client= new Client(myMockedservice);

        // some work      
    }

试试这篇不错的文章here