2

単体テストのパターンのアレンジ部分とアクト部分の違いがよくわかりません。アレンジはオブジェクトの作成のみを意味しますか? そもそもアレンジをアクト部分から分離する必要があるのはなぜですか? 何かがアレンジ部分ではなくアクトに属するかどうかを判断する基準は何ですか? 私には、アサーションの「テストをアレンジ」しているので、すべてがアレンジ部分に属しているように見えますね。

4

1 に答える 1

4

単体テストでは、プログラム内の単一の「行為」、通常はオブジェクト インスタンスに対する単一のメソッド呼び出しをテストします。Arrange、Act、Assert は、単体テストを 3 つの部分 (Act の前、最中、後) に編成します。

  • アレンジ部分は、関心のあるメソッド呼び出しまでのすべてですが、それは含まれません。アレンジ部分では、メソッドを呼び出すときにワールド (メソッドを呼び出しているオブジェクト、相互作用する他のオブジェクトなど) の状態を設定します。

  • Act は、テストしているメソッドの呼び出しです。

  • そして (完全に) Assert はテストの残りの部分であり、Act が私たちが期待する世界に影響を与えたことを Assert します。

したがって、「アサーションのためにテストを配置する」のではなく、行為のために世界を配置します。アレンジパートでは、効果が分かっていることを行います。Arrange パーツで呼び出されるすべてのメソッドは、別の場所で単体テストする必要があります。Act では、その効果がまだわからないことを行います。これが実際のテストの内容です。(テスト駆動開発では、メソッドをまだ作成していないか、この特定のテストに合格するためにその実装に追加していない可能性があります。)

于 2015-08-08T14:31:40.040 に答える