单元测试Parallel.Foreach C#

Sun*_*nny 9 c# unit-testing justmock

我一直在使用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();   
})
Run Code Online (Sandbox Code Playgroud)

我在其他测试用例中也发现了同样的问题.这是JustMock的一些错误行为吗?

Md.*_*yan 4

在进行并行处理时,您不能轻易假设某些事情会发生或不会发生,这就是让它变得更加困难的原因。相反,您会专注于那些会告诉您某些事情正在发挥作用的迹象。这里的问题是,Parallel.ForEach一旦发现异常,就会停止处理,而您期望它处理所有项目。你的 没有任何问题JustMock。使用正常foreach应该可以解决这个问题。如果您有理由使用Parallel.Foreach,请尝试在此处捕获所有异常火灾。