Wol*_*ahl 4 java eclipse junit
为了比较JUnit测试中的多行文本结果,我经常需要从文本表示转到使用多行文本初始化字符串的Java代码.
例如,如果测试应检查包含以下内容的xml字符串:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Customer>
<id>100</id>
<name>John Doe</name>
<orders>
<Order>
<address>100 main street, smalltown, pa</address>
<orderid>1100</orderid>
</Order>
<Order>
<address>5 broadway, ny, ny</address>
<orderid>1200</orderid>
</Order>
</orders>
</Customer>
Run Code Online (Sandbox Code Playgroud)
我想使用一个工具/生成器来获取上面的输入并获得以下结果:
String expected ="";
expected+="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
expected+="<Customer>\n";
expected+=" <id>100</id>\n";
expected+=" <name>John Doe</name>\n";
expected+=" <orders>\n";
expected+=" <Order>\n";
expected+=" <address>100 main street, smalltown, pa</address>\n";
expected+=" <orderid>1100</orderid>\n";
expected+=" </Order>\n";
expected+=" <Order>\n";
expected+=" <address>5 broadway, ny, ny</address>\n";
expected+=" <orderid>1200</orderid>\n";
expected+=" </Order>\n";
expected+=" </orders>\n";
expected+="</Customer>\n";
Run Code Online (Sandbox Code Playgroud)
和/或
// Create test file
java.io.PrintWriter srcWriter = new java.io.PrintWriter(new java.io.FileOutputStream(testFile));
srcWriter.println("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n");
srcWriter.println("<Customer>\n");
srcWriter.println(" <id>100</id>\n");
srcWriter.println(" <name>John Doe</name>\n");
srcWriter.println(" <orders>\n");
srcWriter.println(" <Order>\n");
srcWriter.println(" <address>100 main street, smalltown, pa</address>\n");
srcWriter.println(" <orderid>1100</orderid>\n");
srcWriter.println(" </Order>\n");
srcWriter.println(" <Order>\n");
srcWriter.println(" <address>5 broadway, ny, ny</address>\n");
srcWriter.println(" <orderid>1200</orderid>\n");
srcWriter.println(" </Order>\n");
srcWriter.println(" </orders>\n");
srcWriter.println("</Customer>\n");
srcWriter.close();
// PrintWriter never throws Exceptions, one must check the error state manually
//
if (srcWriter.checkError())
{
throw new IOException( "can not write " + testFile );
}
Run Code Online (Sandbox Code Playgroud)
什么是开发工具/ eclipse实用程序或插件来实现这一目标?
输出文件(如果有)不应随编译结果一起提供.在文件模式中,应该从java代码中的字符串文字重新创建输入文件的等效项.
假设您正在从另一个源复制多行文本,并且您正在使用Eclipse,它可以自动将您的文本转换为多行字符串文字.
在我的版本中,在粘贴到字符串文字时,在Windows - >首选项 - > Java - >编辑器 - >键入 - >转义文本下启用它
然后,如果你输入
String expected = "
Run Code Online (Sandbox Code Playgroud)
并复制一些文字
blah
blah
blah
blah
blah
Run Code Online (Sandbox Code Playgroud)
然后粘贴你的字符串,Eclipse创建:
String expected = "blah\n" +
"blah\n" +
"blah\n" +
"blah\n" +
"blah"
Run Code Online (Sandbox Code Playgroud)
我个人认为,如果Java有一个与Perl的HERE文档等效的多行,那将会很好.
| 归档时间: |
|
| 查看次数: |
2243 次 |
| 最近记录: |