lad*_*dge 7 .net nunit unit-testing
我发现自己最近需要很多这样的逻辑:
Assert.That(collection.Items, Has.Member(expected_item));
Assert.That(collection.Items.Count(), Is.EqualTo(1));
Run Code Online (Sandbox Code Playgroud)
我看到NUnit的提供Has.Some和Has.All,但我没有看到像什么Has.One.没有两个断言,最好的方法是什么?
Bub*_*rap 10
你可以尝试这样的事情:
Assert.AreEqual(collection.Items.Single(), expected_item);
Run Code Online (Sandbox Code Playgroud)
Single将返回集合中的唯一项目,如果它不包含正好1项,则抛出异常.
我对NUnit并不熟悉,所以有人可能会提供一个更好的解决方案,确实使用NUnit函数......
编辑:快速搜索后,唯一似乎接近的NUnit函数是Is.EquivalentTo(IEnumerable):
Assert.That(collection.Items, Is.EquivalentTo(new List<object>() {expected_item}));
Run Code Online (Sandbox Code Playgroud)
IMO第一个选项对我来说更好,但后者可能会根据您的偏好提供更好的异常消息.
从 NUnit 2.6 开始(不在提出这个问题时):
Assert.That(collection.Items, Has.Exactly(1).EqualTo(expected_item));
Run Code Online (Sandbox Code Playgroud)
Has.Exactly“对集合中的每个项目应用约束,如果指定数量的项目成功,则成功。” [1]
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |