[英]Moqed method returning null instead of string
我正在使用Moq進行一些C#測試。 由於某種原因,我得到的是空值而不是字符串。 我正在嘗試測試
public void Foo(IData data){
_value = data.GetValue<T>(someString);
}
interface IData
{
T GetValue<T>(string someString);
}
在我的測試代碼中
Mock<IData> dataMock = new Mock<IData>();
dataMock.Setup(x => x.GetValue<string>(It.IsAny<string>())).Returns("blah");
Foo(dataMock.Object);
但是當我逐步執行時, _value
被分配為null。 它不應該被指定為"blah"
嗎?
您對GetValue
的調用中的通用T
參數很可能不是string
,因此安裝條件不匹配。 默認情況下,Moq將從尚未顯式設置的方法調用中返回默認值(在這種情況下為null
),除非您將其稱為“嚴格”。
// tell Moq to throw an exception if someone calls a method that you haven't `Setup`
Mock<IData> dataMock = new Mock<IData>(MockBehavior.Strict);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.