[英]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
,請嘗試在此處捕獲所有Exception fires。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.