私は、一般的にカスタム電子メールメッセージの作成を制御する単体テストの集合を持つParametrizedテストクラスを持っています。今のクラスは、パラメータ化されたクラスで使用される因子に依存する多くのテストを持っています。テストの流れはすべてのテストで同じです。テストの例:テスト中の文
@Test
public void testRecipientsCount() {
assertEquals(3, recipientsCount);
}
は、私は受信者のリストにいくつかの余分な内部の電子メールを追加私の電子メールクラスに余分なfuncionalityを追加する必要がありました、それが唯一の例いくつかのために起こり、それは私の問題につながります。
私は作成されたメッセージの量を表明したいと言います。古いテストの場合は、それぞれのケースで同じでしたが、今の場合によって異なります。
@Test
public void testRecipientsCount(){
if(something) {
assertEquals(3, recipientsCount);
}
else {
assertEquals(4, recipientsCount);
}
}
...
が、私より経験豊富な同僚たちはテストクラスでIFSを避けるべきであると言う(と私はちょっとそれに同意):私にとって最も直感的な方法は、if文を追加することでした。
私は、2つのテストのclassessで分割テストがうまくいくかもしれないと思っていましたが、それは両方のクラスで冗長なコードにつながります(私はまだ非永遠のメッセージが作成されたかどうかチェックしなければなりません。そのうちの1つに数行追加されました。
私はこれをどうやって行うのですか?冗長コード(パラメータ化されていないクラスを使用しないと、より冗長なコードを生成する場合)を使用しないでください。
は 'いくつかの追加を追加します受信者のリストへの内部電子メール。そのクラスに内部アドレスのリストが注入されていますか?その場合、ほとんどのテストでそのリストを消去し、そのリストに1つまたは2つの 'testInternalMail'テストを入れてください。 –
これは、Parametrizedテストクラスでは可能ではないと思います。引数のセットごとに実行することをお勧めするテストケースを追加しました。アサーションはいくつかの点で異なります。あなたのソリューションは、Parametrizedクラスなしで動作するだろうが、私はちょっとそれを避けたい。 – Raidmaster
あなたの投稿コードをより完全な(しかしまだ小さくて偽物の)テストクラスに変更して、パラメータの設定方法を理解できますか? –