Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.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/jsf-2/2.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
Ruby on rails Rails v6.0,新应用程序--scaffold在安装时生成控制器测试错误_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails v6.0,新应用程序--scaffold在安装时生成控制器测试错误

Ruby on rails Rails v6.0,新应用程序--scaffold在安装时生成控制器测试错误,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在使用rails6.0.3.2和Ruby 2.7.1.p83为一个新的应用程序构建一个数据支架。创建应用程序后,我通过命令行生成了一系列约60个框架,每个框架都有一个“名称”(字符串)字段 railsdb:migrate没有问题。当我调用rails测试时,527个断言中有2个失败。两者都是“行为”控制器中的nomethoderror(缺少count方法) 这只发生在60个ish支架中的1个,这意味着(在这一点上)建造相同 这绝对是出乎意料的。有人见过这个吗 来自rails测试的错误消息: 您

我正在使用
rails6.0.3.2和Ruby 2.7.1.p83
为一个新的应用程序构建一个数据支架。创建应用程序后,我通过命令行生成了一系列约60个框架,每个框架都有一个“名称”(字符串)字段

railsdb:migrate
没有问题。当我调用rails测试时,527个断言中有2个失败。两者都是“行为”控制器中的
nomethoderror
(缺少
count
方法)

这只发生在60个ish支架中的1个,这意味着(在这一点上)建造相同

这绝对是出乎意料的。有人见过这个吗

来自rails测试的错误消息:


您选择的名称与Rails内置对象冲突:
行为

有一个模块叫做

测试(大概)是在
ActionDispatch::IntegrationTest
模块中定义的方法中进行评估的,因此Ruby的常量查找会在遍历到顶级常量之前找到
ActionDispatch::IntegrationTest::Behavior

您需要使用范围解析运算符(
)来引用顶级常量:

assert_difference('::Behavior.count') do
  post behaviors_url, params: { behavior: { name: @behavior.name } }
end

请添加相关测试的代码片段、测试类和错误日志,请将代码片段粘贴到问题中。另外,你能粘贴失败的测试片段吗?“Behavior”是我正在构建的对象的一个任意名称,重命名它是(稍微)更简单的方法。我启动了一个独立的Rails 6.0.2.3应用程序,生成了一个“行为”框架,并重新运行了
Rails测试。同样的错误。非常感谢您指出ActionDispatch::IntegrationTest::Behavior角度。
test "should create behavior" do
    assert_difference('Behavior.count') do
      post behaviors_url, params: { behavior: { name: @behavior.name } }
    end

    assert_redirected_to behavior_url(Behavior.last)
  end
test "should destroy behavior" do
    assert_difference('Behavior.count', -1) do
      delete behavior_url(@behavior)
    end

    assert_redirected_to behaviors_url
  end
assert_difference('::Behavior.count') do
  post behaviors_url, params: { behavior: { name: @behavior.name } }
end