私のアプリケーションを使用する際に、ユーザーがトリガーしたイベントの後にタスクを非同期で実行するために、NSOperationQueue
を使用するコードで競合状態が発生しました。競合状態を解決する方法はわかっています。迷ってしまう愚かな設計ミスですが、テストケースでそのバグを証明したいと思います(最適化/リファクタリング中に戻ってこないようにしますラインを下ろす)。これは私に困ってしまった。テストの目的が競合状態を生成することである場合、マルチスレッドのテストを行うにはどうすればよいでしょうか?スレッドベースのコードをユニットテストしていますか?競合状態を強制する
スレッドや単体テストを扱う際に参考になる資料はありますか?私は特に競合状態の生成に興味があります。
私は共有データ構造をモックし、あなたのモックオブジェクト内では、あなたが "間違った"順序で別のスレッドを実行させる必要がある任意の同期を行うことができます。 –