嗨说我有一个带有以下签名的方法:
public void GeneratePaymentAdvise(IList<int> paymentIds)
Run Code Online (Sandbox Code Playgroud)
这是通过另一种方法调用的:
public void UpdatePaymentStatus(IList<int> paymentIds, IPaymentLogic paymentLogic)
{
...
paymentLogic.GeneratePaymentStatus(paymentIds);
...
}
Run Code Online (Sandbox Code Playgroud)
所以在单元测试中,我想确保调用它.使用moq:
var mockPaymentLogic = new Mock<PaymentLogic>();
UpdatePaymentStatus(new List<int> { 2, 3 }, mockPaymentLogic.Object);
mockPaymentLogic.Verify(x => x.GeneratePaymentStatus(It.IsAny<IList<int>>());
Run Code Online (Sandbox Code Playgroud)
所以这可以正常工作并检查GeneratePaymentStatus是否被调用,但只有使用任何旧的int列表调用.
有没有办法重写这个,所以它测试GeneratePaymentStatus是用一个包含2和3的整数列表调用的?
小智 16
像这样的东西:
mockPaymentLogic.Verify(x => x.GeneratePaymentStatus(It.Is<IList<int>>(l => l.Contains(2) && l.Contains(3))));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4086 次 |
| 最近记录: |