作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个测试
[Test]
public void SaveInventoryItemLoad_Will_Call_WCF_Service_SaveInventoryItemLoad()
{
adapter.SaveInventoryItemLoad(new List<InventoryItemLoadProxy>());
itemMasterBusinessClientMock.Verify(x => x.SaveInventoryItemLoad(It.IsAny<List<InventoryItemLoadProxy>>()), Times.Once());
}
这很好,因为我已经在 WCF 端进行了测试,该方法做了我想要的,所以我只需要说“嘿,你调用了服务吗?是的!”。现在虽然......我需要将所述列表分解为 10 个或更少的夹头,即 23 个项目的列表将是三个 10、10 和 3 的列表。所以第一步当然是编写一个单元测试来验证我没有将超过十个项目推送到 SaveInventoryItemLoad 方法。我当然可以验证该方法被调用了 X 次,但这不是我想要的。我想确保提供给该方法的列表 <= 10 但我似乎无法弄清楚如何。我浏览了最小起订量快速入门,但不知道该怎么做。
我想这会以某种方式做到这一点
// Verify setter with an argument matcher
mock.VerifySet(foo => foo.Value = It.IsInRange(1, 5, Range.Inclusive));
但我似乎无法做到这一点。我想我以前从未遇到过这个。有人知道怎么做吗?
谢谢
最佳答案
我没用过 Moq,只用过 Rhino.Mocks,但我认为你应该能够从 It.IsAny<List<InventoryItemLoadProxy>>
更改你的原始代码限制它不是任何列表,而是不超过 10 个项目的列表。
在线快速查看,语法可能类似于 It.Is<List<InventoryItemLoadProxy>>(list => list.Count <= 10)
.
关于c# - 如何对输入到方法的列表小于 100 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11038786/
我是一名优秀的程序员,十分优秀!