0
JUnit
で作業してください。テストクラスのJUnit:@Parametersの冗長/繰り返しデータを避けるにはどうすればよいですか? (リファクタリング)
私は2つのインスタンス変数があります。
private final Locale locale;
private final PersonaValidationUpdate personaUpdateInvalid;
これらの値は@Parameters
によって定義されています。もちろん、私が使用@Test
方法
の両方で使用する意思を持つ:
@Parameters(name="{index}: Locale: ''{0}'' - ''{1}'' ")
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{ ClientUserLocale.ENGLISH.getLocale(), PersonaValidationUpdate.NULL},
{ ClientUserLocale.ENGLISH.getLocale(), PersonaValidationUpdate.EMPTY},
{ ClientUserLocale.ENGLISH.getLocale(), PersonaValidationUpdate.MIN},
{ ClientUserLocale.ENGLISH.getLocale(), PersonaValidationUpdate.MAX},
{ ClientUserLocale.PORTUGUESE.getLocale(), PersonaValidationUpdate.NULL},
{ ClientUserLocale.PORTUGUESE.getLocale(), PersonaValidationUpdate.EMPTY},
{ ClientUserLocale.PORTUGUESE.getLocale(), PersonaValidationUpdate.MIN},
{ ClientUserLocale.PORTUGUESE.getLocale(), PersonaValidationUpdate.MAX},
{ ClientUserLocale.SPANISH.getLocale(), PersonaValidationUpdate.NULL},
{ ClientUserLocale.SPANISH.getLocale(), PersonaValidationUpdate.EMPTY},
{ ClientUserLocale.SPANISH.getLocale(), PersonaValidationUpdate.MIN},
{ ClientUserLocale.SPANISH.getLocale(), PersonaValidationUpdate.MAX}
});
}
作品上記のコードは、冗長である場合でも、我々は新しいLocale
(つまり追加した場合を想像:日本)。私は新しいブロックを追加し、繰り返す必要があります。ClientUserLocale.JAPANESE.getLocale()
回。
上記のコードを減らす方法はありますか?
私の目標は、上記の各項目について、私のClientUserLocale
列挙を通じて利用可能なすべてのLocale
秒間テストされるべきテスト
PersonaValidationUpdate.NULL
PersonaValidationUpdate.EMPTY
PersonaValidationUpdate.MIN
PersonaValidationUpdate.MAX
です。この場合、私は3つしか定義されていません。
何をスニペット「NULL」、「EMPTY」、「MAX」、「MIN」のそれぞれについて?このようにして、新しいenum値を追加または削除しても、コードは決して変更されません... – Morfic
こんにちは、 'PersonaValidationUpdate'は、それぞれのケースまたはシナリオに従って無効なエンティティを作成する別の列挙型です。可能であれば、より良い理解を得るためのコードを参照してください? –
'PersonaValidationUpdate'もenumであるならば、それはもっと簡単かもしれません。私の答えを下に見て、あなたの考え/疑問を教えてください。 – Morfic