将测试 XML 响应更改为 Bean 响应 Java
Posted
技术标签:
【中文标题】将测试 XML 响应更改为 Bean 响应 Java【英文标题】:Changing a test XML response into a Bean response Java 【发布时间】:2014-09-26 13:10:48 【问题描述】:我正在处理这个测试类并尝试将预期的响应更改为 bean 响应,因为我已将请求更改为 bean 请求。
private void assertXmlResponse(Document xmlResponse, int Elements,
String Message, String Code, String name,
String Funds)
Node topLevelElement = xmlResponse.getFirstChild();
NodeList childElements = topLevelElement.getChildNodes();
assertEquals("result", topLevelElement.getNodeName());
assertEquals(Elements, childElements.getLength());
assertEquals("message", childElements.item(0).getNodeName());
assertEquals(Message, childElements.item(0).getTextContent());
assertEquals("code", childElements.item(1).getNodeName());
assertEquals(Code, childElements.item(1).getTextContent());
assertEquals("name", childElements.item(2).getNodeName());
assertEquals(name, childElements.item(2).getTextContent());
请有人指出正确的方向,或者让我知道是否可行?
谢谢
【问题讨论】:
定义一个具有预期响应作为属性的类 @pd30 谢谢,但我一直在寻找更具体的语法,因为我之前没有使用过 bean 【参考方案1】:你即将制作 POJO(Plain Old Java Objects)。
public Class A
private int Elements;
private String Message;
private String Funds;
private String code;
private String name;
//getters and setters
将此类的引用作为参数保留在您的方法中。
使用 getter 访问方法中的值。
【讨论】:
谢谢,理解有点困难。我可以制作对象并设置和获取方法。但是我怎么能把它写在上面,例如:assertEquals("result", topLevelElement.getNodeName());因为这些是从我通过测试中挑选出来的? assertEquals(Elements, childElements.getLength()); 假设 x 是 A 类的对象,那么在你的 assertEquals(x.getMessage(),childElements.item(0).getTextContent()) 中 childElements 来自 Node 接口,因此此时会抛出错误,因为我们没有使用 Nodes。不知道此时该做什么我已将它们创建为对象并在执行 assertEquals(x.getMessage(),childElements.item(0).getTextContent()) 之前设置它们 所以从 Node 接口获取元素并将它们视为实际响应,而您创建并设置所有属性的对象是预期的响应。就是这样以上是关于将测试 XML 响应更改为 Bean 响应 Java的主要内容,如果未能解决你的问题,请参考以下文章
使用 JWT 进行护照身份验证:如何将护照的默认未经授权响应更改为我的自定义响应?
Flutter 响应式设计:如果屏幕更大,动态将 Column 更改为 Row