问题描述
@Test
public void basicAuthLogin() {
//language=JSON
String jsonBody = "{\n" +
" \"name\": \"Foo\"\n" +
"}";
given().auth().preemptive().basic(username,password)
.body(jsonBody)
.contentType(ContentType.JSON)
.when()
.post("http://localhost:8080/secured/hello")
.then()
.statusCode(200);
}
我想为名称传递动态数据,而不是“ Foo”。我该怎么办?
解决方法
您需要在此处使用DataProvider
。它实际上在运行时为测试用例提供数据。在测试用例之前,之后和期间,有多种方法可以向测试用例提供动态数据。
-
如果使用的是
提供数据@RunWith(Parameterized.class)
,请使用JUnit
,并且可以使用@Parameters
-
使用
@DataProvider (name = “name_of_dataprovider”)
并创建数据提供者方法,以防万一,如果您正在使用TestNG
,并且可以在testCase中添加属性@Test (dataProvider = "data-provider")
。 -
您可以从文件中提供输入,也可以在
objectMapper
或Jackson
lib的帮助下编写通用映射器,以获取数据并在运行时转换为对象并将其用作输入参数。