[英]mock.setup It.IsAny or It.Is instead new object()
它如何與下面的示例一起使用?
mock.Setup(p => p.GetUCByOrgNumberAsync(It.IsAny<UCPartyModel>))).ReturnsAsync(new PartyUCBusinessDTO() { Orgnr = "xxxxxxxx" });
但不是:
mock.Setup(p => p.GetUCByOrgNumberAsync(new UCPartyModel())).ReturnsAsync(new PartyUCBusinessDTO() { Orgnr = "xxxxxxxx" });
如果我不使用 It.IsAny 或 It.Is,下面的數據為空
private IActionResult CreateResult<T>(T data)
{
return CreateResult<T>(200, data);
}
new UCPartyModel()
正在為設置創建模型的新實例,因此當設置模擬時,傳遞的對象與設置中定義的對象不同,這就是它不起作用的原因。 因此,您可以使用It.IsAny<UCPartyModel>
或以下方法。
var model = new UCPartyModel();
mock.Setup(p => p.GetUCByOrgNumberAsync(model).ReturnsAsync(new PartyUCBusinessDTO() { Orgnr = "xxxxxxxx" });
// Your code of invocation.
someBusinessObj.Run(model);
在上面,您傳遞了相同的對象實例,因此將調用實際的 Setup 方法。
有關It.IsAny<TValue>
的更多詳細信息
它匹配給定 TValue 類型的任何值。 你可以在這里閱讀
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.