2016-12-08 9 views
0

nUnit 3.4.1の使用。TestCaseSourceコレクションで使用されるコレクションアサーションストラテジ。戻り値

TestCaseData項目のアップ新しいリストにTestCaseSourceを使用して:Returns値のため

new [] {"value1", "value2"} 

:入力データのように見える配列を返すときに、私のユニットテストで

new TestCaseData(new [] {"value1", "value2"}).Returns(new [] {"value2", "value1"}) 

上記のように、nUnitがCollectionAssert.AreEqualを使用していると仮定しているので、私は失敗したテストを受けます。これは同じ順序を意味します。

TestCaseData初期化中に追加のパラメータを使用してみましたし、CollectionAssert.AreEquivalent代わりに、私はその動作をカスタマイズすることができ、それは

を働いていましたか?

答えて

0

動作は設定できません。流暢なReturnsメソッドはと同じように扱われます。 NUnitは、等価性のみをチェックします。 NUnit code that handles thisは、前方にかなり直

if (testMethod.HasExpectedResult) 
    NUnit.Framework.Assert.AreEqual(testMethod.ExpectedResult, result); 

である第二のパラメータとして期待値を渡すとCollectionAssert.AreEquivalentを使用するための回避策は正しいものです。 NUnitは、任意のアサートを使用できるように、ExpectedResultのセマンティクスを変更しません。意味の意味が非常に近いので、AreEqualAreEquivalentが見受けられますが、それらは内部的に非常に異なります。

+0

これは私がかなりやったことです。この動作を設定できるのはいいですね。ありがとう!私はそれらが非常に異なっていると理解していますが、単純化されたデフォルトの等価列挙型は、使用されているものを変更できるようにカスタマイズすれば十分です。 –

+0

いつでも問題を入力してください。私の最初の気持ちは、私たちがそれをサポートしないということですが、十分なユーザーがそれをサポートすれば、それを検討します。 –

関連する問題