私は次のタイプを持っています:
public enum Status
{
Online,
Offline
}
public class User
{
private readonly Status _status;
public User(Status status) { _status = status; }
public Status Status {get {return _status; }}
public string Name {get;set;}
}
ここで、実行fixture.CreateMany<User>
時に AutoFixture がUsers
ステータスごとに 1 つずつ、2 つの を返すようにします。他のすべてのプロパティ (などName
) には、匿名データを入力する必要があります。
質問:
これを行うために AutoFixture を構成するにはどうすればよいですか?
私はこれを次のように試しました:
オブジェクトを更新するコレクションを登録し
User
ます。fixture.Register( () => Enum.GetValues(typeof(Status)).Cast<Status>().Select(s => new User(s)));
このアプローチの問題は、AutoFixture が次のような他のプロパティを埋めないことです。
Name
ファクトリを使用するようにカスタマイズし、次
User
を使用するコレクションを登録しますfixture.Create
。f.Customize<User>(c => c.FromFactory((Status s) => new User(s))); f.Register(() => Enum.GetValues(typeof(Status)) .Cast<Status>() .Select(s => (User)f.Create(new SeededRequest(typeof(User), s), new SpecimenContext(f))));
それもうまくいきませんでした。種子は使用されていません。