Java PACT测试:编写PactDslJsonBody的正确方法
我有以下JSON格式Java PACT测试:编写PactDslJsonBody的正确方法,java,json,testing,junit,pact,Java,Json,Testing,Junit,Pact,我有以下JSON格式 { "file": { "version": "v1.4", "release": "1.1" }, "status": "ON", "document": { "status": "NOT_FOUND", "release": "undefined" } } 我想知道如何将格式添加到我的PactDslJsonBody中,比如 DslPart result = new
{
"file": {
"version": "v1.4",
"release": "1.1"
},
"status": "ON",
"document": {
"status": "NOT_FOUND",
"release": "undefined"
}
}
我想知道如何将格式添加到我的PactDslJsonBody中,比如
DslPart result = new PactDslJsonBody()
.stringType("file.version", "v1.4")
.stringType("file.release", "1.1")
.stringType("status", "ON")
.stringType("document.status", "NOT_FOUND")
.stringType("document.release", "release")
.asBody();
或者可以添加Java Pojo吗?我有类ApplicationResponse:
public class ApplicationResponse {
private File file;
private String status;
private Document document;
//...
}
Something like ??
DslPart result = new PactDslJsonBody()
.object(ApplicationResponse)
.asBody();
最好的方法是什么?请您添加一个示例,我们尝试使用反射来删除POJO,您正试图这样做。然而,我们的类带有许多Lombok注释&我们无法从生成器注释的字段中获取默认值。我们放弃了使用它。但是一个有更多时间的开发人员无疑可以实现这一点 我现在正在积极为我们的项目创建契约,并使用
lambdasl
和PactDslJsonBody
来构建交互
DslPart actualPactDsl = LambdaDsl.newJsonBody((body) -> {
body
.stringType("status", "ON")
.object("document", (doc) -> {
doc.stringType("status", "NOT_FOUND");
doc.stringType("release", "undefined");
})
.object("file", (file) -> {
file.stringType("version", "v1.4");
file.stringType("release", "1.1");
});
}).build();
或
这两个示例都将根据您的示例生成Json字符串
作为测试的一部分,它确实有助于您了解可以创建的不同类型的测试
String pactDslJson = new PactDslJsonBody()
.stringType("status", "ON")
.object("document")
.stringType("status", "NOT_FOUND")
.stringType("release", "undefined")
.closeObject()
.object("file")
.stringType("version", "v1.4")
.stringType("release", "1.1")
.closeObject()
.getBody().toString();