我有一个用于集成测试的定制自动夹具构建器。代码如下。
问题 1 - 目前第一笔交易的 TransactionViewKey.TransactionId 为 1 等。如何设置 TransactionViewKey TransactionId 使其从方法参数 beginTransactionId播种?例如,返回一个 TransactionViews 数组,其中第一个 TransactionId 为 200,然后每个递增 1?
问题 2 - 用于确定 transactiondate 的 lambda 似乎只运行一次 - 因此每个日期都是相同的值。如何设置构建器,以便它为每个生成的实例运行随机日期生成器,而不是只运行一次?
谢谢
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();
}