我是新来RSpec,并试图编写一个简单的测试,显示设计工作。我选择了一个随机页面,并希望编写一个测试,显示未登录的用户被重定向到/ users/sign_in。基本设计规范与I18N
describe OrgsController do
describe "GET index when not logged in" do
it "redirects to new_user_session_path" do
user = FactoryGirl.create(:user)
user.confirm!
sign_in user
sign_out user
get :index
response.should redirect_to new_user_session_path
end
end
before(:each) do
user = FactoryGirl.create(:user)
user.confirm!
sign_in user
end
# remaining specs
end
我得到"Expected response to be a redirect to <http://test.host/users/sign_in?locale=en> but was a redirect to <http://test.host/users/sign_in>."
我已经实现国际化,并在我的应用程序控制器:
before_filter :set_i18n_locale_from_params
是什么方面得到这个工作的最佳方式:
- 让路线匹配?
- 为了避免before(:each)块的影响,再次签署用户的hackish?
- 总体方法?
Shioyama - 这工作完美!非常感谢。我把这个补丁放在config/initializers中的一个新文件中(根据http://stackoverflow.com/questions/3420680/monkey-patching-in-rails-3)。让我知道你是否会以不同的方式应用它。 –
嗨,很高兴它解决了!我在spec/support /中为它创建了一个文件,然后从features/support/custom_env.rb中获取该文件,以便它也可以应用于黄瓜测试。但基本上你可以把它放在任何可以通过rspec加载的地方。关于config/initializers的唯一的事情是这些文件也将以其他模式加载,除非你在某些条件下包装它。我更喜欢将测试相关的东西分开。 –