統合テスト用にカスタマイズされた自動フィクスチャ ビルダーがあります。コードは以下です。
質問 1 - 現在、最初のトランザクションの TransactionViewKey.TransactionId は 1 などです。TransactionViewKey の TransactionId を設定して、メソッド パラメータの beginTransactionId からシードされるようにするにはどうすればよいですか? たとえば、最初の TransactionId が 200 で、それぞれが 1 ずつ増加する TransactionViews の配列を返しますか?
質問 2 - transactiondate を決定するためのラムダは 1 回だけ実行されるように見えるため、各日付は同じ値です。一度だけではなく、生成されたインスタンスごとにランダム日付ジェネレーターを実行するようにビルダーをセットアップするにはどうすればよいですか?
ありがとう
static TransactionView[] CreateTransactions(int transactionsToReturnCount, long beginningTransactionId) {
Random random = new Random();
IFixture fixture = new Fixture();
fixture.Customize<TransactionViewKey>(ob => ob
.With(t => t.TransactionId)
.With(t => t.TransactionIdSpecified, true)
.OmitAutoProperties()
);
fixture.Customize<TransactionView>(ob => ob
.With(t => t.TransactionDate, DateTime.Now - new TimeSpan(random.Next(30),0,0,0))
.With(t => t.PostDate, DateTime.Now - new TimeSpan(random.Next(30), 0, 0, 0))
.With(t => t.ViewKey)
.With(t => t.Amount)
.OmitAutoProperties()
);
IEnumerable<TransactionView> transactionViews = fixture.CreateMany<TransactionView>(transactionsToReturnCount);
return transactionViews.OrderBy(t => t.TransactionDate).ToArray();
}