Java 希望以jsonpath请求的形式传递动态数据
我想为name而不是“Foo”传递动态数据。我该怎么做?您需要在此处使用Java 希望以jsonpath请求的形式传递动态数据,java,json,rest-assured,Java,Json,Rest Assured,我想为name而不是“Foo”传递动态数据。我该怎么做?您需要在此处使用数据提供程序。它实际上在运行时为您的测试用例提供数据。有多种方法可以在测试用例之前、之后和期间向测试用例提供动态数据 如果您正在使用JUnit,并且可以使用参数提供数据,请使用@RunWith(Parameterized.class) 使用@DataProvider(name=“name\u of_DataProvider”)并在使用TestNG的情况下创建数据提供程序方法,并且可以在测试用例中添加属性@Test(Dat
数据提供程序。它实际上在运行时为您的测试用例提供数据。有多种方法可以在测试用例之前、之后和期间向测试用例提供动态数据
- 如果您正在使用JUnit,并且可以使用参数提供数据,请使用
@RunWith(Parameterized.class)
- 使用
@DataProvider(name=“name\u of_DataProvider”)
并在使用TestNG
的情况下创建数据提供程序方法,并且可以在测试用例中添加属性@Test(DataProvider=“data provider”)
- 您可以从文件中提供输入,您可以在
objectMapper
或Jackson
lib的帮助下编写通用映射器,在运行时获取数据并转换为对象,并将其用作输入参数
仅供参考,Jackson是放心依赖的一部分。我添加了dataprovider来传递name的数据,例如NameValue有3组数据——“学校”、“学院”、“大学”。传递名称时,使用$NameValue会引发错误。如何修复此处的错误?
@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);
}