设置一类的只读属性的单元测试
我有这样设置一类的只读属性的单元测试
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