2017-12-11 8 views
2

私はAutoFixureで不思議に思っています、あらかじめ定義されたリストからランダムに選択する方法はありますか?たとえば、fixture.Createまたはfixture.CreateManyを使用すると、あらかじめ定義されたリストからオブジェクトがランダムに選択されます。私はdocumentationと類似のものを見つけず、スタックオーバーフローを検索していたので、それも可能であるかどうかはわかりません。AutoFixure、あらかじめ定義されたリストからランダムに選択してください

答えて

3

あなたはElementsBuilder<T>を使用することができます。

[Fact] 
public void Example() 
{ 
    var fixture = new Fixture(); 
    fixture.Customizations.Add(
     new ElementsBuilder<MyObject>(
      new MyObject("foo"), 
      new MyObject("bar"), 
      new MyObject("baz"))); 

    var actual = fixture.Create<MyObject>(); 

    Assert.Contains(actual.Name, new[] { "foo", "bar", "baz" }); 
} 

このテストに合格します。

実際のコードベースでは、その変更をICustomizationにパッケージする必要があります。

関連する問題