加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读