--Wenn unbenutzt
@Test
public void sample1() {
assertThat("a".length()).isEqualTo(1);
}
@Test
public void sample2() {
assertThat("b".length()).isEqualTo(1);
}
(Ich werde keinen solchen Test schreiben, aber als Beispiel ...)
--Beim Benutzen
@ParameterizedTest
@ValueSource(strings = {"a", "b"})
public void sample(String string) {
assertThat(string.length()).isEqualTo(1);
}
Sie können mehrere Tests kombinieren, indem Sie dem Argument von "@ ValueSource" wie folgt einen Parameter hinzufügen.
Es gibt verschiedene Möglichkeiten, die Parameter anzugeben, daher werde ich sie im Folgenden vorstellen.
@ValueSource
String
@ParameterizedTest
@ValueSource(strings = {"a", "b", "c"})
public void string(String value) {
System.out.println("string: " + value);
}
Ausführungsergebnis
string: 'a'
string: 'b'
string: 'c'
string: ''
string: ' '
int
@ParameterizedTest
@ValueSource(ints = {1, 2 ,3})
public void ints(int value) {
System.out.println("ints: " + value);
}
Ausführungsergebnis
ints: 1
ints: 2
ints: 3
@CsvSource
@ParameterizedTest
@CsvSource({"1, val1", "2, val2", "3, val3"})
public void csv(int num, String value) { //Erhalten Sie eine Nummer als int
System.out.println("num: '" + num + "', value: '" + value + "'");
}
@ParameterizedTest
@CsvSource({"1, val1", "2, val2", "3, val3"})
public void csv(String num, String value) { //Erhalte eine Nummer als String
System.out.println("num: '" + num + "', value: '" + value + "'");
}
Ausführungsergebnis
num: '1', value: 'val1'
num: '2', value: 'val2'
num: '3', value: 'val3'
@ParameterizedTest
@CsvSource({"Leerer Charakter, ''", "Leerer Charakter, ' '", "null, "})
public void csv(String type, String value) {
System.out.println(type + ": '" + value + "'");
}
Ausführungsergebnis
Leerer Charakter: ''
Leerer Charakter: ' '
null: 'null'
@EnumSource
Aufzählungsklasse verwenden
enum SampleEnum {
ENUM1,
ENUM2,
ENUM3
}
Alle Fälle
@ParameterizedTest
@EnumSource(SampleEnum.class)
public void enumSource(SampleEnum value) {
System.out.println("enum: " + value);
}
Ausführungsergebnis
enum: ENUM1
enum: ENUM2
enum: ENUM3
include
@ParameterizedTest
@EnumSource(value = SampleEnum.class, names = {"ENUM1", "ENUM2"})
public void enumInclude(SampleEnum value) {
System.out.println("enum: " + value);
}
Ausführungsergebnis
enum: ENUM1
enum: ENUM2
exclude
@ParameterizedTest
@EnumSource(value = SampleEnum.class, names = {"ENUM1", "ENUM2"}, mode = EnumSource.Mode.EXCLUDE)
public void enumExclude(SampleEnum value) {
System.out.println("enum: " + value);
}
Ausführungsergebnis
enum: ENUM3
@MethodSource
@ParameterizedTest
@MethodSource("source")
public void methodSource(String value) {
System.out.println("value: " + value);
}
public static Stream<String> source() {
return Stream.of("string1", "string2", null);
}
Ausführungsergebnis
value: string1
value: string2
value: null
Recommended Posts