ruby-on-rails – 你如何使用Minitest,Capybara,Selenium进行jav
发布时间:2020-12-17 04:26:31 所属栏目:百科 来源:网络整理
导读:有很多关于如何使用Capybara / Selenium / Rspec执行 javascript测试的示例,您可以在其中编写如下测试: it "does something",:js = true do ...end 但是,对于minitest,您无法传递第二个参数来指示selenium执行测试. 有没有人对如何做到这一点有任何想法?
有很多关于如何使用Capybara / Selenium / Rspec执行
javascript测试的示例,您可以在其中编写如下测试:
it "does something",:js => true do ... end 但是,对于minitest,您无法传递第二个参数来指示selenium执行测试. 有没有人对如何做到这一点有任何想法? 解决方法
什么:js flag正在做的很简单.它将当前驱动程序从默认(机架测试)切换到支持javascript执行的另一个驱动程序(selenium,webkit).你可以用minitest做同样的事情:
require "minitest/autorun" class WebsiteTest < MiniTest::Unit::TestCase def teardown super Capybara.use_default_driver end def test_with_javascript Capybara.current_driver = :selenium visit "/" click_link "Hide" assert has_no_link?("Hide") end def test_without_javascript visit "/" click_link "Hide" assert has_link?("Hide") end end 当然,为方便起见,您可以将其抽象为模块: require "minitest/autorun" module PossibleJSDriver def require_js Capybara.current_driver = :selenium end def teardown super Capybara.use_default_driver end end class MiniTest::Unit::TestCase include PossibleJSDriver end class WebsiteTest < MiniTest::Unit::TestCase def test_with_javascript require_js visit "/" click_link "Hide" assert has_no_link?("Hide") end def test_without_javascript visit "/" click_link "Hide" assert has_link?("Hide") end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |