1

在 nunit 中,假设我们有多个实际值要返回特定函数,我应该如何构建 assert 函数?我应该使用哪个功能?

前任:

int function(..) {
.
.
.
    a = some_operation();
    if (a == 0)
       result = 0;
    else if (a == some_predefined_value)
       result = 1;
    else if (a == some_predefined_value)
       result = 2;
    else
       correct_usage();

     return result;
}
4

2 回答 2

2

我想你可能想要使用CollectionAssert. 这使您可以验证一个值或一组值是否包含在另一个值中。

CollectionAssert.Contains(new[] { 1, 2, 3 }, 2);
CollectionAssert.IsSubsetOf(new[] {1, 2 }, new[] {1, 2, 3, 4});

您可能会注意到第一个方法是检查第一个 IEnumerable 中的第二个参数,而第二个方法是断言第一个参数 ( IEnumerable) 是第二个参数的子集,也是一个IEnumerable.

于 2012-11-21T15:11:08.777 回答
1

从 NUnit 2.4 开始,约束模型已经可用,它允许连接和分离。这允许对相同事物进行更具可读性的断言。

此外,它还包括许多有用的快捷方式,主要在IsHas类中。

使用流利风格的断言

// These are equivalent
Assert.That(function(), Is.EqualTo(0) | Is.EqualTo(1) | Is.EqualTo(2));
Assert.That(function(), Is.AtLeast(0) & Is.AtMost(3));
于 2015-11-15T05:27:14.513 回答