如何模拟原始 XML 输出以用于 Java 中的测试 class?
How to mock original XML output to use in test class in Java?
我正在为应用程序编写 Junit 测试用例,我必须一次又一次地构建虚拟 Document object
并根据我的原始响应设置根元素和所有其他元素,以便传入我的 Mockito.when(m1()).thenReturn(respDoc)
.代码是这样的
Code Starts
Document respDoc = new Document();
Element elem = new Element("RootElement");
respDoc.setRootElement(elem);
Element node1 = new Element("Nodes").addContent("FirstNode");
elem.add(node1);
**And So On...**
Code Ends
有时响应 xml 太大以至于我花费了所有时间来创建这个 Document
对象。有什么方法可以让我通过整个 XML
并且它给了我想要的输出。
如果有任何困惑,请告诉我。
提前致谢!
假设 Document
来自 JDOM 库:
您需要以下依赖项:
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.6.1</version>
</dependency>
然后你解析它:
import org.jdom2.Document;
import org.jdom2.input.SAXBuilder;
String FILENAME = "src/main/resources/staff.xml";
SAXBuilder sax = new SAXBuilder();
Document doc = sax.build(new File(FILENAME));
Mockito.when(m1()).thenReturn(doc);
参考:https://mkyong.com/java/how-to-read-xml-file-in-java-jdom-example/
好吧,文档说明您可以使用 InputStream:
http://www.jdom.org/docs/apidocs/org/jdom2/input/SAXBuilder.html
示例:
String yourXmlString = "<xml>";
InputStream stringStream = new ByteArrayInputStream(yourXmlString .getBytes("UTF-8"));
SAXBuilder sax = new SAXBuilder();
Document doc = sax.build(stringStream );
我正在为应用程序编写 Junit 测试用例,我必须一次又一次地构建虚拟 Document object
并根据我的原始响应设置根元素和所有其他元素,以便传入我的 Mockito.when(m1()).thenReturn(respDoc)
.代码是这样的
Code Starts
Document respDoc = new Document();
Element elem = new Element("RootElement");
respDoc.setRootElement(elem);
Element node1 = new Element("Nodes").addContent("FirstNode");
elem.add(node1);
**And So On...**
Code Ends
有时响应 xml 太大以至于我花费了所有时间来创建这个 Document
对象。有什么方法可以让我通过整个 XML
并且它给了我想要的输出。
如果有任何困惑,请告诉我。 提前致谢!
假设 Document
来自 JDOM 库:
您需要以下依赖项:
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.6.1</version>
</dependency>
然后你解析它:
import org.jdom2.Document;
import org.jdom2.input.SAXBuilder;
String FILENAME = "src/main/resources/staff.xml";
SAXBuilder sax = new SAXBuilder();
Document doc = sax.build(new File(FILENAME));
Mockito.when(m1()).thenReturn(doc);
参考:https://mkyong.com/java/how-to-read-xml-file-in-java-jdom-example/
好吧,文档说明您可以使用 InputStream:
http://www.jdom.org/docs/apidocs/org/jdom2/input/SAXBuilder.html 示例:
String yourXmlString = "<xml>";
InputStream stringStream = new ByteArrayInputStream(yourXmlString .getBytes("UTF-8"));
SAXBuilder sax = new SAXBuilder();
Document doc = sax.build(stringStream );