我有這樣一個鏈接:如何測試黃瓜郵件鏈接?
< A HREF = 「電子郵件地址:<%= @email%>受=回答投訴&體= <%= @salutation%>」>答</a>
如何使用Cucumber/Capybara對其進行測試?我的意思是它已經不僅僅只是
更多,我應該能看到「答案」
我有這樣一個鏈接:如何測試黃瓜郵件鏈接?
< A HREF = 「電子郵件地址:<%= @email%>受=回答投訴&體= <%= @salutation%>」>答</a>
如何使用Cucumber/Capybara對其進行測試?我的意思是它已經不僅僅只是
更多,我應該能看到「答案」
這聽起來像您擔心在mailto:
鏈接@email
和@salutation
值是否正確。
你可以做這樣的事情
page.should have_xpath("//a[contains(@href,email)]"))
我結束了與黃瓜步:
Then /^I should have a mailto link with:$/ do |table|
mailto_link = '//a[@href="mailto:' + table.rows_hash['recipient'] + '?subject=' + table.rows_hash['subject'] + '&body=' + table.rows_hash['body'] + ' "]'
page.should have_xpath(mailto_link)
end
您需要進行網址編碼。如果參數的順序不同,你應該使用XPATH contains() –
的除了彼得·Brudny與URL編碼,幷包含了如此秩序的參數都不會有問題(我從那裏取出了身體,但是如果你需要的話,你也許可以弄清楚它的身影。
Then(/^I should have a mailto link with:$/) do |table|
mailto_link = ("//a[contains(@href, \"mailto:#{table.rows_hash['recipient']}\")"\
" and contains(@href, \""+ {
subject: table.rows_hash['subject']
}.to_query + '")]').gsub('+', '%20')
page.should(have_xpath(mailto_link))
end
Simila r接受的答案,但略有更新的例子。你可以這樣說:
expect(page).to have_xpath("//a[contains(@href,'mailto:[email protected]')]")
在你看來什麼是足夠的?該鏈接的href包含一個mailto正確的電子郵件? –
其實我不太確定我應該測試什麼。我只是認爲'我應該看'還不夠。你怎麼看? –
在我看來,測試href包含「mailto:#{email}」是好的。 –