2017-02-20 30 views
1

我有一封郵件。併爲該郵件的看法。在預覽時,所有內容看起來都很好,鏈接呈現正常。爲什麼Rails/RSpec無法渲染和測試?

問題在於編寫規範(RSpec)。當我嘗試測試一些鏈接,因爲鏈接中的「&」符號是不是在測試中正確顯示測試失敗的存在:

我測試(正如它出現在郵件預覽):

https://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=1234567890 

我測試輸出看到什麼時,測試失敗:

https://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=1234567890 

那麼,怎樣才能讓我的這個意義上說? 爲什麼預覽和測試中的郵件解釋不同? 我該如何測試?

+1

''&是一個網址轉義逃脫'&'。當你說「這是它在郵件預覽中出現的樣子」時,你的意思是「這就是我所看到的」,是嗎?在這種情況下,非常有可能該符號仍然逃脫,但這並不明顯。檢查頁面源以查找真相。 –

+0

我認爲一個人不會逃脫另一個,但爲什麼Rails/RSpec會讓人很難知道該期待什麼?如果郵件預覽顯示正確,那麼爲什麼RSpec不使用相同的表示,而是迫使開發人員考慮字符轉義? – Flip

+2

我認爲他們都逃脫了。它只是在預覽中瀏覽器處理轉義並向您顯示預期的輸出。 –

回答

1

測試輸出被轉義html。您可以將您的期望,轉義HTML,以及:

expected_link = 'https://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=1234567890' 
expect(page).to have_content(ERB::Util.html_escape(expected_link)) 
+0

感謝您的回答。我的問題也是爲了找出爲什麼預覽和RSpec解釋同一個視圖有何不同。當我使用它並且我希望它顯示時,我可以更容易和直觀地測試鏈接。 – Flip

相關問題