0
我有這樣的Ruby代碼:紅寶石測試用例:在`self.startup`方法定義實例變量
class GoogleTestCase < BaseTestCase
def test_search
@browser.find_element(:name, 'q').send_keys "Hello Ruby"
@browser.find_element(:name, 'btnK')
end
end
然後,我通過這個文件運行GoogleTestCase:
...
class BaseTestCase < Test::Unit::TestCase
def self.startup
@browser = Selenium::WebDriver.for :chrome
@browser.get('https://google.com')
end
def self.shutdown
@browser.quit
end
end
exit Test::Unit::AutoRunner.run(true, test_dir)
啓動後,一切都很好。 Selenium將運行Chrome瀏覽器,它會打開Google網頁。但是,當test_search
方法燒製,紅寶石不能看到@browser
變量:
我怎樣才能在self.startup
方法定義@browser
變量,這樣test_search
方法裏面我看可以嗎?
而不是類的方法'startup'和'shutdown',您可以使用實例方法'setup'和' teardown'。或者使用[class variable](http://ruby-doc.org/core-2.4.1/doc/syntax/assignment_rdoc.html#label-Class+Variables),即'@@ browser'。 – Stefan
不,我不能。因爲'setup'方法的行爲與'startup'方法不同。 'Startup'只被調用一次,但在每個類的測試方法之前調用'setup'。我不想那樣。 – nanuqcz
「或使用類變量」 – Stefan