Rspec:如何从功能规范中执行ApplicationController方法

时间:2017-06-28 11:41:07

标签: ruby-on-rails rspec capybara

这是一个简单(也许是常见的)问题,但我找不到明确的答案。

我正在使用Rspec和Capybara从虚拟应用程序测试我的rails引擎。在我的功能规范中,我需要使用名为ApplicationController的{​​{1}}方法和特定参数。我该怎么办?

我的功能测试是:

get_component()

返回

require "rails_helper"

describe "My test", type: :feature do
    it "gets a component if slug is provided" do
        # ...
        component = ApplicationController.get_component( slug )
        # ...
    end
end

我不想模拟/存根该方法,我希望它能够真正运行。

此外,应用程序NoMethodError: undefined method `get_component' for #<ApplicationController:0x007ff7207234f8> 应该继承引擎,不应该吗?所以调用ApplicationController是正确的,不是吗?

1 个答案:

答案 0 :(得分:1)

请记住,get_component是一个实例方法,而不是类方法,因此您只能在ApplicationController对象上调用它,而不能在类本身上调用它。试试这个......

component = ApplicationController.new.get_component( slug )