【发布时间】:2018-01-16 06:46:35
【问题描述】:
我得到了
参数计数不匹配。
尝试运行以下单元测试时出现异常。我正在传递相关参数并且计数是正确的。为什么会抛出异常?
List<TransactionVM> transactionList = new List<TransactionVM> {
new TransactionVM {OrderDetailID = 1, QuantityReceived=125, UnitCost=100.00},
new TransactionVM {OrderDetailID = 1, QuantityReceived=130, UnitCost=200.00},
};
public OrderServiceTest()
{
Mock<IOrderManager> mockOrderManager = new Mock<IOrderManager>();
mockOrderManager.Setup(mr => mr.Receive(It.IsAny<List<TransactionVM>>(), It.IsAny<string()))
.Returns((TransactionVM target) =>
{
target.RoleID = transactionList.Count() + 1;
transactionList.Add(target);
return "OrderReceived";
});
this.MockOrderManager = mockOrderManager.Object;
}
[TestMethod]
public void CanReceiveOrder()
{
List<TransactionVM> transactionList = new List<TransactionVM> {
new TransactionVM {OrderDetailID = 1, QuantityReceived=125, UnitCost=100.00}
};
this.MockOrderManager.Receive(transactionList, "Permanent");
int productCount = transactionList.Count();
Assert.AreEqual(3, transactionList);
}
界面中的签名
string Receive(List<TransactionVM> transactionVMList, string priceChangeStatus);
当我在CanReceiveOrder() 中执行this.MockOrderManager.Receive(transactionList, "Permanent"); 行时出现异常
【问题讨论】:
标签: c# unit-testing parameter-passing