1
私は文字列パラメータを与えられた一連の単体テストのバリエーションを生成する単一の関数を持っています。どのようにしてファクトリメソッドの文字列パラメータを取るかを取るファクトリ属性(または何らかの代替メソッド)を使用することはできますか?mbunitファクトリメソッドに文字列パラメータを渡すには?
私はGallio/mbUnitで自動テストフレームワークを使用しています。
私は文字列パラメータを与えられた一連の単体テストのバリエーションを生成する単一の関数を持っています。どのようにしてファクトリメソッドの文字列パラメータを取るかを取るファクトリ属性(または何らかの代替メソッド)を使用することはできますか?mbunitファクトリメソッドに文字列パラメータを渡すには?
私はGallio/mbUnitで自動テストフレームワークを使用しています。
[TestFixture]
public class SampleFixture
{
[Column("123", "456")]
private string parameter; // Causes the fixture to be run once for each value.
public IEnumerable<string> GetData()
{
yield return "abc" + parameter;
yield return "def" + parameter;
yield return "ghi" + parameter;
}
[Test, Factory("GetData")]
public void MyDataDrivenTest(string text)
{
TestLog.WriteLine(text);
}
}
あなたはGallio wikiにdata-driven testsに関する記事を読みたいと思うかもしれません。 [Row]
,[Column]
などのMbUnitによるデータ駆動型テストの作成に便利な機能を使用する方法の例が多数見つかります。
UPDATE:上記の例では、ファクトリからのデータを外部パラメータに連結しました。テストは6回実行されます( "abc123"、 "def123"、 "ghi123"、 "abc456"、 "def456"、 "ghi456")。しかし、あなたは別の方法でパラメータを使うことができます。 GetData
の動作全体を変更するなどの方法があります。
ありがとうございます。私の質問は、あなたの例では、GetDataメソッドに文字列を渡して、テストデータとして返すものを決定する方法です。 – tgiphil
正確にわからない。 GetDataは必要なものを返すことができ、必ずしも利回りのリストではありません。たとえば、リポジトリ、カスタムジェネレータ、または任意の種類のデータファクトリなどの外部データソースからデータを取得できます。たぶんあなたは達成したいものの例を提供することができます。その文字列パラメータはどこから来ますか?ユーザー入力、データベース、設定ファイル? –
文字列を受け取り、ユニットテスト用にIEnumerable