我正在尝试编写一个简单的黄瓜步骤,检查页面上是否有两个短语之一,但我对if语句的尝试失败了。这是我目前的步骤
Then(/^I should see a pdf preview of the magazine$/) do
@browser.windows.last.use
@browser.text.should_not include "Page not found"
但是,理想情况下,我希望该步骤检查并查看文本" Page not found"如果没有通过测试,则存在。如果找不到"页面"不存在,然后检查文本"禁止"如果存在,则不通过测试。如果两个短语都不存在,则通过测试。
我认为我磕磕绊绊的是,我不知道如何辨别,停止并且不通过测试。
理想情况下,我认为它看起来像这样......
if text "Page not found" visible?
fail test
elseif text "Forbidden" visible?
fail test
else
pass test
但我不知道如何把它放入ruby / watir-webdriver代码
如果测试失败,我是否必须让它抛出异常?如果这很容易,那会不通过测试,或者通过但是给我一条消息,如果两个短语都不可见,我该如何通过呢?
答案 0 :(得分:1)
只要任何断言失败(或引发异常),Cucumber步骤就会停止并使测试失败。相反,如果所有断言都通过(或者没有引发异常),则Cucumber步骤将通过。
因此,您可以这样做:
Then(/^I should see a pdf preview of the magazine$/) do
@browser.windows.last.use
@browser.text.should_not include "Page not found" # first assertion
@browser.text.should_not include "Forbidden" # second assertion
end
通过这一步: