rSpec和Rails3中的短截线装置
您将如何使用rSpec在Rails 3中设计存根。我有一个rSpec和Rails3中的短截线装置,rspec,ruby-on-rails-3,rspec2,Rspec,Ruby On Rails 3,Rspec2,您将如何使用rSpec在Rails 3中设计存根。我有一个userscoontroller和一个User模型。目前,这两项都与Desive有关,我正在编写控制器规范,我的期望真的很难实现,因为Desive登录确实干扰了工作 任何事情都会有帮助。你可以试着模仿Desive所依赖的底层warden()对象,这里有一个链接,指向一些关于如何使用RSpec实现这一点的详细信息:(条目还包括一些其他主题,你想要的解决方案在页面底部。)我发现现在做这件事很容易。rspec2和Desive存在问题,但现在已解
userscoontroller
和一个User
模型。目前,这两项都与Desive有关,我正在编写控制器规范,我的期望真的很难实现,因为Desive登录
确实干扰了工作
任何事情都会有帮助。你可以试着模仿Desive所依赖的底层warden()对象,这里有一个链接,指向一些关于如何使用RSpec实现这一点的详细信息:(条目还包括一些其他主题,你想要的解决方案在页面底部。)我发现现在做这件事很容易。rspec2和Desive存在问题,但现在已解决。我想你需要更新你的宝石。然后你就可以写了
require 'spec_helper'
describe DoStuffController do
include Devise::TestHelpers
before (:each) do
@user = Factory.create(:user)
sign_in @user
end
describe "GET 'index'" do
it "should be successful" do
get 'index'
response.should be_success
end
end
end
[更新]在Devage wiki上,现在有一个详细的(可能是最新的)。非常感谢!这正是我一直在寻找的。下面的新答案提供了一个更好的方法,就像给可能遇到这个问题的其他人一个提示。如果您使用的是确认,请确保您的工厂定义为:confirfied_at或您将其传入。Desive wiki上对此有详细描述:@KevinBedell,URL几乎正确-它缺少最后一个“')。因此,正确的URL是我在文章中也固定了URL。不过,最好不要在控制器测试中触碰数据库。。。有没有办法模仿这种行为而不是实际创建activerecord对象?使用Deviate,您可以完全删除用户模型: