单元测试 Parallel.Foreach C#
Unit Testing Parallel.Foreach C#
我一直在使用 JustMock 在 C# 中进行单元测试。
我面临的问题是我无法断言 Parallel.Foreach
中调用的函数。但是可以断言内部完成的分配。
Parallel.ForEach(aList, entity =>
{
//Can be asserted using Assert(5,parameter.value) in the test
parameter.value = 5;
//Cannot be asserted, assertion fails Mock.Assert(parameter) in the test
//is arranged using MustBeCalled
parameter.call();
})
我在其他测试用例中也发现了同样的问题。这是 JustMock 的一些错误行为吗?
在进行并行处理时,您不能轻易假设某些事情会发生或不会发生,这使它变得更加困难。相反,您会专注于会告诉您某些事情正在发生的迹象。这里的问题是 Parallel.ForEach
一发现异常就停止处理,而您期望它处理所有项目。你的 JustMock
没问题。使用正常的 foreach
应该可以解决这个问题。如果您有理由使用 Parallel.Foreach
,请尝试在此处捕获所有异常触发。
我一直在使用 JustMock 在 C# 中进行单元测试。
我面临的问题是我无法断言 Parallel.Foreach
中调用的函数。但是可以断言内部完成的分配。
Parallel.ForEach(aList, entity =>
{
//Can be asserted using Assert(5,parameter.value) in the test
parameter.value = 5;
//Cannot be asserted, assertion fails Mock.Assert(parameter) in the test
//is arranged using MustBeCalled
parameter.call();
})
我在其他测试用例中也发现了同样的问题。这是 JustMock 的一些错误行为吗?
在进行并行处理时,您不能轻易假设某些事情会发生或不会发生,这使它变得更加困难。相反,您会专注于会告诉您某些事情正在发生的迹象。这里的问题是 Parallel.ForEach
一发现异常就停止处理,而您期望它处理所有项目。你的 JustMock
没问题。使用正常的 foreach
应该可以解决这个问题。如果您有理由使用 Parallel.Foreach
,请尝试在此处捕获所有异常触发。