Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Minitest在Rails应用程序中测试Javascript_Javascript_Ruby On Rails_Minitest - Fatal编程技术网

使用Minitest在Rails应用程序中测试Javascript

使用Minitest在Rails应用程序中测试Javascript,javascript,ruby-on-rails,minitest,Javascript,Ruby On Rails,Minitest,我正在制作一个Rails应用程序,其中一些视图在React中呈现,使用React Railsgem(因此它使用的是资产管道) 当我尝试测试我的React视图时,React组件没有加载,因此我无法测试它们的内容。例如,我的一个集成测试如下所示: require 'test_helper' class TabsIndexTest < ActionDispatch::IntegrationTest test "index" do get tabs_path assert_

我正在制作一个Rails应用程序,其中一些视图在React中呈现,使用
React Rails
gem(因此它使用的是资产管道)

当我尝试测试我的React视图时,React组件没有加载,因此我无法测试它们的内容。例如,我的一个集成测试如下所示:

require 'test_helper'

class TabsIndexTest < ActionDispatch::IntegrationTest

  test "index" do
    get tabs_path
    assert_template 'tabs/index'
    assert_select 'table'
  end
end
需要“测试助手”
类TabsIndexTest
这将测试此索引页是否有
元素。它应该,但是测试没有加载我的React元素,所以它没有看到一个。(但是,如果我测试是否存在
,则通过测试,让我知道JS尚未运行)

有没有办法让我的React组件对我的Minitest测试可见?

我建议不要在功能测试中这样测试组件

许多断言在Rails中已经过时了。实际上,控制器测试应该只检查HTTP状态代码(:ok,:not_found)

更多信息请点击此处:

如果您真的想以这种方式测试组件,您可以使用与capybara和类似headless chrome的集成测试来执行JS

快速写在这里:

我个人建议改为使用JS单元测试和/或快照,根据我的经验,这些测试和/或快照既快速又友好:

一个非常简单的解决方案(而不是使用茉莉花等)是让这些助手:

def assert_async_js_equal(应为脚本)

script=不能使用Minitest测试javascript。我在selenium中使用了Capybara,现在它在Rails 5.1中是默认的。看见