期待される結果が異なる1つの組み合わせを除いて、パラメータのすべての組み合わせをテストするテストを作成します。 1つの特定の組み合わせを除くパラメータのすべての組み合わせをテストします。
は、これまでのところ私は[TestCase(false, false, ExpectedResult = false)]
[TestCase(false, true, ExpectedResult = false)]
[TestCase(true, false, ExpectedResult = false)]
[TestCase(true, true, ExpectedResult = true)]
public bool Test(bool paramA bool paramB)
{
var target = new MyComand(paramA, paramB);
return target.CanExecute();
}
// this class is made up, but shows the basic concept
public class MyCommand
{
bool _preConditionA;
bool _preConditionB;
public MyCommand(bool preConditionA, bool preConditionB)
{
_preConditionA = preConditionA;
_preConditionB = preConditionB;
}
public bool CanExecute()
{
if (_preConditionA == false)
return false;
if (_preConditionB == false)
return false;
return true;
}
}
またはいくつかのクレイジー[TestCaseSource]
が出ています。 どちらのケースも私の個人的な可読性に問題があります。 これは、パラメータがブール値ではない場合、より複雑になります。 [Values]
と[Combinatorical]
の属性をチェックしましたが、私の場合は実際には機能しません。
これを解決する方法は他にもありますか?
この質問を抽象的なものにしないために、「あなたのケースでうまくいく」データの例を挙げてください。 –
あなたのテストで 'Combinatorial'が動作しないのはなぜですか?完璧なユースケースのように見えます。 –
@GabrielNegut [Combinatorical]は、私が正しく理解していることを除いて、すべての組み合わせをテストします。問題現在のテストでその特別なテストケースがテストされているかどうかを調べるために、コードロードを記述する必要があります。 – HankTheTank