2012-05-23 55 views
0

我的測試開始失敗,因爲我在XML預期塊後添加了debugger。現在它在聲明未通過測試的語句結尾處生成一個單獨的\n。我似乎無法擺脫它,我刪除或移動我的文字。有沒有更好的方法來忽略 n?

然後我寫這使之通過:

 expected = <<-XML 
    <?xml version="1.0" ?> 
    <?qbxml version="5.0" ?> 
    <QBXML> 
     <QBXMLMsgsRq onError="continueOnError"> 
     </QBXMLMsgsRq> 
    </QBXML> 
    XML 
    assert_equal expected.gsub(/\n/,'').gsub(' ',''), result.gsub(/\n/,'').gsub(' ','') 
    #assert_equal expected.strip, result 

否則使用的註釋掉一個工作。我在這裏錯過了一些愚蠢的明顯感覺嗎?

回答

1

我不會比較字符串,它只是吸收。

相反,我會比較對象表示。

嘗試使用:Hash#from_xml並比較散列值。

+0

嗯..有什麼好的參考? – Trip

+1

我會說:[我](http://stackoverflow.com/questions/7987024/difference-between-two-xml-documents-ruby-on-rails)和[others](http:// stackoverflow。 com/questions/5072005/how-do-i-compare-xml -output-in-a-cucumber-step-using-a-multiline-string-example) – apneadiving

+0

感謝鄰居;) – Trip

2

你可以使用\s在正則表達式來替換這兩個新行和空格字符,這是一個有點更具可讀性:

assert_equal expected.gsub(/\s/,''), result.gsub(/\s/,'') 
相關問題