[英]Is there any way to mock property without setter using nsubstitute?
我有一些代碼,例如:
class MyClass
{
private int _myField;
public int MyField => _myField;
}
我怎么能嘲笑了MyField
使用nsubstitute
? 或者這是不可能的?
為了使 NSubstitute 能夠模擬您的財產,它必須是virtual
或abstract
。 但在那之后,你可以像其他任何事情一樣模擬它:
var mock = Substitute.For<MyClass>();
mock.MyField.Returns(-1);
更常見的是,您希望替換接口上的值。 現在,如果您的 MyClass 實現了下面的 ITest 接口,您將能夠在該接口上進行替換。
[Test]
public void CanSubstituteReadOnlyPropertyOnInterface()
{
var n = NSubstitute.Substitute.For<ITest>();
n.X.Returns(55);
Assert.AreEqual(55, n.X);
}
public interface ITest
{
int X { get; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.