最小起订量单元测试错误。预期对模拟调用一次,但为 0 次
MOQ Unit testing error. Expected invocation on the mock once, but was 0 times
我知道这个问题以前在这里被问过,但我很困惑为什么这个测试失败了。这是我的测试 运行:
public void SubmitWebservicePurchaseOrder_Calls_addQuickAddItemListToPO()
{
var input = new PurchaseOrderWebserviceSubmitDTO();
_service.SubmitWebservicePurchaseOrder(input);
var dict = It.IsAny<Dictionary<long, QuickAddOrCSVLineItem>>();
_purchaseOrderMock.Verify(x => x.addQuickAddItemListToPO(It.IsAny<long>(), It.Is<bool>(y => y == false), ref dict), Times.Once);
}
下面是错误的内容:
Result Message:
Moq.MockException :
Expected invocation on the mock once, but was 0 times: x => x.addQuickAddItemListToPO(It.IsAny<Int64>(), It.Is<Boolean>(y => y == False), .dict)
No setups configured.
Performed invocations:
IPurchaseOrders.CreateNewPO(OMS.DataLayer.poHeader)
IPurchaseOrders.addQuickAddItemListToPO(0, False, System.Collections.Generic.Dictionary`2[System.Int64,OMS.DataServices.QuickAddOrCSVLineItem])
IPurchaseOrders.GetPOHeaderInfoWithUserToken(0, 00000000, 00000000)
函数 SubmitWebservicePurchaseOrder
肯定在调用 addQuickAddItemListToPO
,但我仍然收到此错误...有人知道为什么吗?我之前没有使用 MOQ,也不确定如何调试...
验证检查是否已调用模拟函数,Moq 函数需要设置为测试才能被调用。
您似乎在尝试测试是否正在调用 X 上实现的函数。
解决了问题,addQuickAddItemListToPO
上的 ref
参数未在 correctly/was 中传递并被读取为 null。一旦我更新了我的最小起订量库并将参数更改为 ref It.Ref<Dictionary<long, QuickAddOrCSVLineItem>>.IsAny
,测试就通过了。
很抱歉没有发布更多的代码家伙,我想我发布的内容足以让外面的人提供帮助。
我知道这个问题以前在这里被问过,但我很困惑为什么这个测试失败了。这是我的测试 运行:
public void SubmitWebservicePurchaseOrder_Calls_addQuickAddItemListToPO()
{
var input = new PurchaseOrderWebserviceSubmitDTO();
_service.SubmitWebservicePurchaseOrder(input);
var dict = It.IsAny<Dictionary<long, QuickAddOrCSVLineItem>>();
_purchaseOrderMock.Verify(x => x.addQuickAddItemListToPO(It.IsAny<long>(), It.Is<bool>(y => y == false), ref dict), Times.Once);
}
下面是错误的内容:
Result Message:
Moq.MockException :
Expected invocation on the mock once, but was 0 times: x => x.addQuickAddItemListToPO(It.IsAny<Int64>(), It.Is<Boolean>(y => y == False), .dict)
No setups configured.
Performed invocations:
IPurchaseOrders.CreateNewPO(OMS.DataLayer.poHeader)
IPurchaseOrders.addQuickAddItemListToPO(0, False, System.Collections.Generic.Dictionary`2[System.Int64,OMS.DataServices.QuickAddOrCSVLineItem])
IPurchaseOrders.GetPOHeaderInfoWithUserToken(0, 00000000, 00000000)
函数 SubmitWebservicePurchaseOrder
肯定在调用 addQuickAddItemListToPO
,但我仍然收到此错误...有人知道为什么吗?我之前没有使用 MOQ,也不确定如何调试...
验证检查是否已调用模拟函数,Moq 函数需要设置为测试才能被调用。 您似乎在尝试测试是否正在调用 X 上实现的函数。
解决了问题,addQuickAddItemListToPO
上的 ref
参数未在 correctly/was 中传递并被读取为 null。一旦我更新了我的最小起订量库并将参数更改为 ref It.Ref<Dictionary<long, QuickAddOrCSVLineItem>>.IsAny
,测试就通过了。
很抱歉没有发布更多的代码家伙,我想我发布的内容足以让外面的人提供帮助。