Gallio/MbUnitの主任開発者であるJeff Brownの記事を覚えています。この記事では、MbUnit v3 の動的ファクトリと静的ファクトリについて説明しています。静的および動的なテスト ファクトリを作成する方法を説明する良い例があります。
一方、テスト データ ファクトリは作成が簡単で、[Row]
入力としてプリミティブ値のみを受け入れるベースのデータ ドリブン テストの興味深い代替手段を提供します (属性に渡されるパラメーターに対する C# の制限)。
以下は MbUnit v3 の例です。ここでは、データ ファクトリはテスト フィクスチャのプロパティですが、ネストされた型または外部型に配置されるメソッドまたはフィールドにすることができます。これは確かに非常に柔軟な機能です:)
[TestFixture]
public class MyTestFixture
{
private IEnumerable<object[]> ProvideTestData
{
get
{
yield return new object[] { new Foo(123), "Hello", Color.Blue};
yield return new object[] { new Foo(456), "Big", Color.Red};
yield return new object[] { new Foo(789), "World", Color.Green};
}
}
[Test, Factory("ProvideTestData")]
public void MyTestMethod(Foo foo, string text, Color color)
{
// Test logic here...
}
}