设置一类的只读属性的单元测试

我有这样设置一类的只读属性的单元测试

public interface IConnection 

{

Strategy Gc { get; }

bool IsConnected();

bool Connect();

}

我想使用这个接口的类的单元测试方法的接口。现在我想设置Gc,但它恰好是只读的。有没有办法设置Gc字段而不更改此接口类? 我使用MS假货和Nsubstitute进行单元测试。但是,显然没有人提供解决方案。 PrivateObject也不起作用。

更改界面不是一个选项。建议更好的解决方案。

回答:

NSubstitute这很容易。首先为您的界面模拟:

var mock = Substitute.For<IConnection>(); 

现在,你可以通过设置任何返回类型的属性嘲笑成员:

mock.Gc.Returns(Substitute.For<Strategy>()); 

最后提供嘲笑实例作为参数,根据服务该实例,例如:

var target = new MyClassToTest(); 

target.DoSomething(mock); // mock is an instance of IConnection

现在,每当你的方法被调用它返回一个dumm实例为Strategy。当然,您也可以在Returns-声明中设置任何其他任意返回类型。只需看看http://nsubstitute.github.io/help/set-return-value了解更多信息。

以上是 设置一类的只读属性的单元测试 的全部内容, 来源链接: utcz.com/qa/264817.html

回到顶部