【发布时间】:2011-11-06 17:46:52
【问题描述】:
例如,如果我给他 n 个来自不同线程的数据块,我想测试我的多线程方法调用存储库方法 n 次的事实。当然,模拟不是线程安全的,甚至不应该是。
[Test]
public void CanSaveCustomersInParallel()
{
var customers = new List<List<Customer>>
{
new List<Customer>
{
new Customer {FirstName = "FirstName1"},
new Customer {FirstName = "FirstName2"}
},
new List<Customer>
{
new Customer {FirstName = "FirstName3"},
new Customer {FirstName = "FirstName4"}
}
};
_serviceCustomers.ParallelSaveBatch(customers);
_repoCustomers
.Verify(x => x.SaveBatch(It.IsAny<List<Customer>>()), Times.Exactly(2));
}
当然,这个测试有时会失败,有时不会。但它的本质是不正确的。你能告诉我如何重写它吗?
【问题讨论】:
标签: c# unit-testing moq