9

我一直在使用 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 的一些错误行为吗?

4

1 回答 1

3

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

于 2016-09-05T07:14:24.223 回答