4

MbUnit v3 で組み合わせテストを作成する方法を理解しようとしています。Web 上のサンプル コードはすべて MbUnit v2 を参照しており、これは 3 つの属性を使用することを意味します。

  • コンビナトリアルテスト
  • 工場
  • ファクトリの使用

MbUnit v3 には UsingFactories 属性がありません (また、Factory 属性のセマンティクスは大きく異なり、CombinatorialTest 属性は不要になりました)。では、どのファクトリ メソッドが特定の単体テスト メソッドのどのパラメーターにバインドされているかをどのように判断すればよいでしょうか?

ありがとう。

4

3 に答える 3

4

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...   
   }
}
于 2009-08-06T13:06:27.663 に答える
4

Jeffの助けを借りて、次のようFactoryに の代わりに属性を簡単に使用できることがわかりました。UsingFactories

public static IEnumerable<int> XFactory()
{
...
}

public static IEnumerable<string> YFactory()
{
...
}

[Test]
public void ATestMethod([Factory("XFactory")] int x, [Factory("YFactory")] string y)
{
...
}

テストATestMethodは、 によって生成された値と によって生成された値のデカルト乗算で実行XFactoryされYFactoryます。

于 2009-08-24T15:32:08.917 に答える
0

MbUnitのテストに似たものは見当たりません[UsingFactories]が、 +この組み合わせライブラリを使用して同じ結果を得ることができます。[Factory]

これについては、 MbUnitユーザーグループに確認を求めてみてください。

于 2009-08-08T18:52:26.673 に答える