我正在编写一个单元测试来验证xml是否格式正确,但这是失败的,我无法弄清楚原因。
所以我决定测试this blog post的代码并在Grails控制台中测试,它也失败了。
import groovy.xml.*
def prettyXml = '''\
<?xml version="1.0" encoding="UTF-8"?>
<languages>
<language id="1">Groovy</language>
<language id="2">Java</language>
<language id="3">Scala</language>
</languages>
'''
// Pretty print a non-formatted XML String.
def xmlString = '<languages><language id="1">Groovy</language><language id="2">Java</language><language id="3">Scala</language></languages>'
assert XmlUtil.serialize(xmlString) == prettyXml
断言失败了:
Assertion failed:
assert XmlUtil.serialize(xmlString) == prettyXml
| | | |
| | | <?xml version="1.0" encoding="UTF-8"?>
| | | <languages>
| | | <language id="1">Groovy</language>
| | | <language id="2">Java</language>
| | | <language id="3">Scala</language>
| | | </languages>
| | false
| <languages><language id="1">Groovy</language><language id="2">Java</language><language id="3">Scala</language></languages>
<?xml version="1.0" encoding="UTF-8"?>
<languages>
<language id="1">Groovy</language>
<language id="2">Java</language>
<language id="3">Scala</language>
</languages>
我正在使用Grails 2.2.1,它在Windows 7上使用Groovy 2.0.7。
可能与OS行分隔符有关吗?
修改
我将两个字符串保存到文件中,并使用Notepad ++检查
解析后的xml(XmlUtils)将CL+RF
作为行分隔符,但prettyXml
只有LF
。我还使用\n
而不是多行声明进行了测试,结果相同!
Groovy不应该总是使用CL+RF
,因为这是Windows行分隔符吗?
答案 0 :(得分:0)