I have been using JustMock for unit testing in C#.
The problem I am facing is I cannot assert the functions called inside Parallel.Foreach
. However the assignments done inside can be asserted.
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();
})
I found the same issue in other test cases also. Is this some wrong behavior of JustMock?
When doing parallel processing you cannot easily assume that something will or will not happen, that's what makes it harder. Instead, you concentrate on signs that will tell you that something is working. The issue here is that Parallel.ForEach
stops processing as soon as exception is spotted, while you were expecting it to process all items. Nothing is wrong with your JustMock
. Using normal foreach
should resolve this issue. if you have reason to use Parallel.Foreach
anyway, try to catch all Exception fires here.