我试图弄清楚我在这里缺少什么。我的测试运行正常,但是我的最小起订量VerifyAll
引发异常。
[TestMethod]
public async Task ActionPlanDataProvider_GetActionPlanReferenceList_ReturnsValid()
{
try
{
//Arrange
Mock<IActionPlanDataProvider> moqAPlan = new Mock<IActionPlanDataProvider>();
//moqAPlan.Setup(x => x.GetActionPlanReferenceList()).ReturnsAsync(new ActionPlanReferenceList());
moqAPlan
.Setup(x => x.GetActionPlanReferenceList("1"))
.Returns(Task.FromResult(new ActionPlanReferenceList()));
//Act
var d = await moqAPlan.Object.GetActionPlanReferenceList("1234123");
//Assert
moqAPlan.VerifyAll();
}
catch (Exception ex)
{
string a = ex.Message;
throw;
}
}
以下设置不匹配...
我想知道这是否是因为异步运行方式导致我的最小起订量看不到模拟对象方法调用吗?
最佳答案
当不使用安装程序时会发生这种情况。您将模拟程序设置为使用GetActionPlanReferenceList("1")
,但称为GetActionPlanReferenceList("1234123")
。
因此,根据最小起订量,您执行的内容与您设置的内容不符。
您可以匹配预期的参数或尝试
moqAPlan
.Setup(x => x.GetActionPlanReferenceList(It.IsAny<string>()))
.Returns(Task.FromResult(new ActionPlanReferenceList()));
这将使该方法通过
It.IsAny<string>()
表达式参数接受任何字符串