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

Dependency injection 依赖注入的好处-使用模拟数据进行测试?,dependency-injection,Dependency Injection,我读出了依赖注入的好处, 有一件事我不明白 “使用模拟数据可以轻松完成DI测试” 无法清楚了解如何使用模拟数据进行测试 如何进行测试 有人能用简单的例子解释一下吗?当你有这个类构造函数时: Client(Service service) { this.service = service; } 您可以使用DI来解耦对象依赖关系(在本例中,客户端具有服务强依赖关系),因此您可以应用基本形式的DI: Client(IService service){ this.service = servic

我读出了依赖注入的好处, 有一件事我不明白

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

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

如何进行测试


有人能用简单的例子解释一下吗?

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

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

}
您可以使用DI来解耦对象依赖关系(在本例中,客户端具有服务强依赖关系),因此您可以应用基本形式的DI:

Client(IService service){
 this.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      
    }
私有MockRepository\u mocks;
[设置]
公共无效初始化()
{
_mocks=新的MockRepository();
}
[测试]
公共空间应该能够获得正确的工作()
{
var myMockedservice=_mocks.DynamicMock();
var client=新客户端(myMockedservice);
//一些工作
}

试试这篇漂亮的文章

看看这篇非常有趣的谷歌谈话: