簡體   English   中英

單元測試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 ,請嘗試在此處捕獲所有Exception fires。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM