0

複雑なオブジェクトのいくつかの変数をテストする必要があります。

オブジェクト - 人物
           |->名前
           |->住所
           | | |->ストリート
           | | |->都市
           | | |->郵便番号
           | | |->Apt_num
           |->興味
           | | |->スポーツ
           | | |->音楽
           | | |->映画
           |->その他1
           | | |->x1
           | | |->x2   
           |->その他2

上記のオブジェクトについて、Person オブジェクトのさまざまな変数をテストする単体テストを書きたいと思います。city、zip、apt、x1 など。上記のオブジェクトでは、Name、Address、Interests などもオブジェクトであり、その他のオブジェクトでもあります。個人の子オブジェクトは null にすることができます。私はtestngを使ってテストを書いています。上記のオブジェクトの dataProvider を記述して変数を微調整する良い方法はありますか。

4

1 に答える 1

1

純粋な単体テストでは、Person などの 1 つのクラスを他のクラスから完全に分離してテストし、すべての (エッジ) ケースに対してユニットのメソッドをテストする必要があります。

単体テストを実行したいので、完全に分離することは非常に重要です。たとえば、person クラスなど、1 つの単体のみをテストする必要があります。

すべての依存関係はどうですか?要件に従って動作することを 100% 確信している必要があるため、それらをモックする必要があります。これは次のことを意味します。

  • それらは壊れていません - あなたの同僚がアドレスのコードを壊す可能性があります
  • エッジケースについても調整する必要があります。たとえば、音楽への関心がゼロになる可能性がある場合、誰かの API を信頼することはできません。

外部からこれらの要件を達成するのが非常に難しい場合があります。つまり、住所の通りの代わりに返されないコードを誰かがコミットしていないかnull、API がそのようなメソッドを公開する必要がないため、Interest の音楽を null に設定するのが難しい場合があるということです。

嘲笑はあなたが使うべき正しいものです。http://en.wikipedia.org/wiki/Mockitoの例を見てください。テスト内のコンポーネントの依存関係を、数行のコード行で期待される動作に完全に置き換えることができます。

于 2013-09-10T06:56:36.487 に答える