how to implement ddt in api
If you use JUnit-5 in your framework, it allows to use
@ParameterizedTest annotation beside @Test annotation.
There are three different way to achieve DDT with @ParameterizedTest
annotation.
1. @ParameterizedTest
@ValueSource(ints = {1,2,3,4})
public void validateRegionNameTest1(int id) {
given().pathParam("id", id)
.when().get("/regions/{id}") ==> It will use 1,2,3,4 as
id in different runs...
.prettyPeek()
.then().assertThat().statusCode(200)
.and().assertThat().body("region_id", equalTo(id));
}
2. @ParameterizedTest
@CsvSource({
"1, Europe",
"2, Americas",
"3, Asia",
"4, Middle East and Africa"})
public void validateRegionNameTest2(int id, String name) { ==> iterate
each data set one by one
given().pathParam("id", id)
.when().get("/regions/{id}")
.prettyPeek()
.then().assertThat().statusCode(200)
.and().assertThat().body("region_id", equalTo(id))
.and().assertThat().body("region_name", equalTo(name));
}
3. @ParameterizedTest
@CsvFileSource(resources = "/regions.csv") ==> uses external csv
file which is located under resources directory
public void validateRegionNameTest3(int id, String name) {
given().pathParam("id", id)
.when().get("/regions/{id}")
.prettyPeek()
.then().assertThat().statusCode(200)
.and().assertThat().body("region_id", equalTo(id))
.and().assertThat().body("region_name", equalTo(name));
}
3.67
3
If you use JUnit-5 in your framework,
it allows to use @ParameterizedTest annotation
beside @Test annotation.
There are different way to achieve
DDT with @ParameterizedTest annotation.
(1-valueSource , 2- csvSource , 3-CsvFileSource)
1. @ParameterizedTest
@ValueSource(ints = {1,2,3,4})
public void validateRegionNameTest1(int id) {
given().pathParam("id", id)
.when().get("/regions/{id}") ==> It will use 1,2,3,4 as
id in different runs...
.prettyPeek()
.then().assertThat().statusCode(200)
.and().assertThat().body("region_id", equalTo(id));
}
2. @ParameterizedTest
@CsvSource({
"1, Europe",
"2, Americas",
"3, Asia",
"4, Middle East and Africa"})
public void validateRegionNameTest2(int id, String name) { ==> iterate
each data set one by one
given().pathParam("id", id)
.when().get("/regions/{id}")
.prettyPeek()
.then().assertThat().statusCode(200)
.and().assertThat().body("region_id", equalTo(id))
.and().assertThat().body("region_name", equalTo(name));
}
3. @ParameterizedTest
@CsvFileSource(resources = "/regions.csv") ==> uses external csv
file which is located under resources directory
public void validateRegionNameTest3(int id, String name) {
given().pathParam("id", id)
.when().get("/regions/{id}")
.prettyPeek()
.then().assertThat().statusCode(200)
.and().assertThat().body("region_id", equalTo(id))
.and().assertThat().body("region_name", equalTo(name));
}
Thank you!
3
0
Are there any code examples left?
New code examples in category Java
-
Java 2022-03-27 21:35:04 Sort string array in case insensitive order and case sensitive order java
-
Java 2022-03-27 21:25:10 java -jar -l resources\es.porperties -i ejemplo.txt -o inject.bin
-
Java 2022-03-27 21:20:21 Debug & Fix a 2-Dimensional Array Java Console Application
-
Java 2022-03-27 20:40:19 TreeSet headSet(E toElement) method in java
-
Java 2022-03-27 19:30:06 close keyboard android
-
Java 2022-03-27 19:20:40 java measure execution time
-
Java 2022-03-27 19:10:06 how to add cardview support in android studio
-
Java 2022-03-27 18:55:08 android studio lower case letters on a button