2

マルチスレッド機能を純粋なTDD方式で開発する方法について、誰かが光を当てることができますか。(おそらく、C# または Java のいくつかの例を使用)

前もって感謝します。

4

1 に答える 1

2

要するに、

  • 最初に、スレッドで実行されるコードが機能することをアサートします。機能的に賢い。簡単な単体テスト - スレッドなし。スレッドの側面を抽象化する型 (サンプル名 Executor) を抽出できます。たとえば、コードブロックが実行される本番環境で新しいスレッドを生成する Execute(codeblock) 。テストでは、関数呼び出しのように、コードブロックが呼び出しスレッドで実行されます。
  • 次に、実稼働 Executor を使用するストレス テストを作成します。複数のスレッドを生成し、不変条件をアサートします。つまり、生成されるスレッドの数に関係なく、発生する必要がある/発生してはならないことです。

これには他にもいくつかのニュアンスがあります - 複数のスレッドを生成しているか (アクティブ)、または異なるスレッドで呼び出されているか (パッシブ) に基づいています。SteveFreeman と NatPryce による GOOS 本のスレッド化に関連する章を読むことをお勧めします。

于 2012-06-13T05:23:56.433 に答える