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 の 2 番目の引数をチェックしており、2 番目のメソッドは最初の引数 ( IEnumerable) が 2 番目の引数のサブセットであり、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 に答える