控制器测试:RuntimeError:@controller是nil。如果控制器在子文件夹中,如何引用控制器?

时间:2016-01-18 14:08:48

标签: ruby-on-rails ruby-on-rails-4 testing

我有以下控制器:

  • /controllers/api/base_controller.rb
  • /controllers/api/v1/articles_controller.rb

当运行我的控制器测试文章时,我收到错误RuntimeError: @controller is nil: make sure you set it in your test's setup method。我的测试文件以:

开头
require 'test_helper'
class ApiArticlesControllerTest < ActionController::TestCase
  etc...

class行应该怎么办?我尝试了几个版本但没有成功。

1 个答案:

答案 0 :(得分:2)

您的控制器名称是作用域的,因此您应将其称为Api::V1::ArticlesController

Scoped意味着它的名称在另一个模块的范围内(&#34;在&#34;下),在您的情况下,其中两个ApiV1

将测试更改为class Api::V1::ArticlesControllerTest < ActionController::TestCase可以解决您的问题。

修改

如果上述情况不起作用,您也可以执行以下操作

class ApiArticlesControllerTest < ActionController::TestCase
  tests Api::V1::ArticlesController