2017-08-29 5 views
0

実行中に渡されるパラメータがわからない場合は、Nunitコンソールから以下のコードを実行する方法。TestCase Attributeを使用してパラメータを指定したくない場合、パラメータ化されたテストケースを実行するにはどうすればよいですか?

[TestCase] 
    public void ExecuteString(string someValue) 
    { 
     Console.WriteLine(someValue); 
    } 

[TestCase( "Values")]という形式でパラメータを渡す必要があることはわかっています。しかし、私はパラメータが何になるのか分からない場合は?

+0

なぜパラメータがどうなるかわからないのはなぜですか?あなたはプログラマであり、テストケースで定義します。あなたがそれらを知らないなら、それらを使用する実行コードは何ですか? – oerkelens

+0

パラメータは動的です。そう。私はそれを知らずにそれらを実行することができるはずです。私は上記のコードで文字列型のパラメータの型を知っているだけです。 –

+0

ほとんどの人が持っている単体テストの考え方と同じ考えがあるのだろうかと思います。コードで異なる型を処理する必要がある場合は、異なる型のテストケースを設定します。単体テストは固定値を使用して、コードが期待した結果をもたらすかどうかを確認します。あらかじめ入力を決めることなく、出力を予測することはできないため、テストすることはできません。 (はい、場合によってはランダム値を使用したいかもしれませんが、一般的ではありません) – oerkelens

答えて

1

このようにTestCase属性を使用することはできませんが、変数とランタイム値で動作するTestCaseSource属性があります。

以下のように動作します。あなたが探しているものかもしれませんか?

[Test, TestCaseSource(typeof(string), nameof(SomeClass.someCases))] 
public void Test(string someValue) 
{ 
    Console.WriteLine(someValue); 
} 

private class someClass 
{ 
    public static IEnumerable someCases 
    { 
     get 
     { 
      yield return 
      new TestCaseData("valuefornow"); 
      yield return 
      new TestCaseData("valueforlater"); 
     } 
    } 
} 
関連する問題