我在过去一周内创建了66个watir脚本,以便在客户网站上自动化测试。
但是我最近发现了一个名为MiniTest的测试框架,我现在正试图实现它。
我将URL设置为变量的原因是因为有5个不同的站点需要运行这些测试,因此当他们希望我在不同的网站上运行我的包时,我只需更新该1个变量而不是在每个单独的测试中。
require 'minitest/autorun'
require "watir-webdriver"
class MPTEST < MiniTest::Unit::TestCase
def setup()
url = "http://thewebsite.com/"
$browser = Watir::Browser.new :chrome
$browser.goto url
end
def test_myTestCase
$browser.link(:text, "Submit your CV").click
sleep(2)
$browser.button(:value,"Submit").click
assert($browser.label.text.includes?("This field is required"))
def teardown
$browser.close
end
end
运行时,我收到以下输出:
NameError: undefined local variable or method 'browser' for #<MPTEST:0x4cc72f8>c:/directory stuff...
有什么想法吗?
编辑我有浏览器工作但是现在我的断言存在问题:
新代码:
require 'minitest/autorun'
require "watir-webdriver"
class MPTEST < MiniTest::Unit::TestCase
def setup()
url ="http://thewebsite.com"
$browser = Watir::Browser.new :chrome
$browser.goto url
end
def test_myTestCase
$browser.link(:text, "Submit your CV").click
sleep(2)
$browser.button(:value,"Submit").click
assert($browser.label.text.includes?("This field is required"))
end
def teardown
$browser.close
end
end
错误是:
NoMEthodError: undefined method 'includes?' for "":String
答案 0 :(得分:1)
在我看来,您可以使用@browser
代替$browser
(但问题可能不在此代码中)
答案 1 :(得分:0)
例外
NoMEthodError: undefined method 'includes?' for "":String
由于字符串,在这种情况下$browser.label.text
返回的值没有includes?
方法。
您真正想要的方法是include?
(无复数):
assert($browser.label.text.include?("This field is required"))