当节点为空白时,我在使用 Nokogiri 测试一些 XML 生成时遇到了一些麻烦。我正在使用 Minitest 将生成的 XML 字符串与模板夹具文件进行比较。我的测试因 Minitest<Node></Node>
与<Node />
.
XML 生成
builder = Nokogiri::XML::Builder.new encoding: "UTF-8" do |xml|
xml.Header
xml.FileName @object.filename
end
模板文件
这是我在测试中用作固定装置的文件
<?xml version="1.0" encoding="UTF-8"?>
<Header/>
<FileName></FileName>
最小输出
3) Failure:
--- expected
+++ actual
@@ -25,7 +25,7 @@
<Header />
- <FileName/>
+ <FileName></FileName>
如您所见,MiniTest 试图将自闭合标签与非自闭合标签进行比较,从而使测试失败。奇怪的是,将夹具标签更改为自闭合标签会导致完全相同的错误消息。
这是因为有时@object.filename
是 nil - 如果我有一个空白 XML 节点(如上xml.Header
所示),在我的夹具中使用自闭合标签就没有问题。