ruby-on-rails - Rspec 跳过 Controller 中的设计操作 - sign_in_and_redirect

标签 ruby-on-rails ruby tdd rspec devise

我已经将 Rails 应用程序与 omniauth 和设计集成相集成。在一个 Controller 中,我有 -

def create
     # some 
     # stuff 
     # here
   sign_in_and_redirect(:person, @person)
     # some 
     # stuff 
     # here
 end 

因为这个 Action 来自设计,我不应该测试这个 Action ,而只是测试它的存在(如果我错了,请在这里纠正我。)。此外,由于我在 mock 这个人对象,它没有方法来传递原始 sign_in_and_redirect 操作。

那么,如何测试这个 Controller 呢?

更新

我在之前的 do block 中尝试过这个 -

controller.stub!(:sign_in_and_redirect).and_return(true)

但这给我错误,因为 - 缺少 templace 身份验证/创建 我没有任何 create.html.erb,因为它会在正常工作流程中重定向。


更新

我的 AuthencationController#create 方法代码可以在这里看到 - http://www.pastie.org/2116067 我的测试代码可以在这里看到 - http://www.pastie.org/2116081

最佳答案

最后我发现它与设计有关。

这解决了问题 - 设计 wiki - How To: Controllers and Views tests with Rails 3 (and rspec)

我必须包含 support/devise.rb 文件和下面的行 -

RSpec.configure do |config|
   config.include Devise::TestHelpers, :type => :controller
end

在那之后,我只是通过 stub 的方式向 person 类添加了所需的方法,并且它起作用了。

关于ruby-on-rails - Rspec 跳过 Controller 中的设计操作 - sign_in_and_redirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6468074/

相关文章:

ruby-on-rails - ActiveRecord 不创建表

ruby - 如何找到多维数组的 .index

ruby - Michael Hartl 的 Rails 5 教程第 10 章, list 10.56,测试 admin 属性是否被禁止

ruby-on-rails - 我的 rspec 测试不会通过 : Michael Hartl's rails tutorial

javascript - 巫术/ capybara : Cannot log in with :js => true

ruby-on-rails - 使用 I18N 数据库后端测试 Rails 应用程序

ruby-on-rails - ActiveRecord 未检索所有模型

ruby-on-rails - Rails 中自动添加段落

.net - VB.NET 和 NUnit - TDD

ruby-on-rails - Rails 在数据库中将我的属性设置为 nil