ソフトウェアがますます並行的になるにつれて、単体テストで型のコア動作をテストするにはどうすればよいでしょうか(並列動作ではなく、コア動作のみ)。
古き良き時代には、型があり、それを呼び出し、それが返すものやその他の呼び出しをチェックしていました。
今日では、メソッドを呼び出すと、実際の作業は次に利用可能なスレッドで実行されるようにスケジュールされます。それが実際にいつ開始され、他のものを呼び出すかはわかりません。さらに、それらの他のものも同時に発生する可能性があります。
これにどのように対処しますか?コンカレント スケジューラを抽象化/注入しますか (たとえば、タスク並列ライブラリを抽象化し、単体テストでフェイク/モックを提供しますか)?
役に立ったリソースは何ですか?
編集
タイプの通常の動作のテストを強調するように質問を編集しました(TPLなど、マルチコアを利用するために使用される並列メカニズムは無視します)