Rails 3 - 如何摆脱“test.host”?

时间:2011-06-21 09:44:16

标签: ruby-on-rails-3 automated-tests ruby-on-rails-plugins

我最近安装了一个名为Gretel的插件来为我处理面包屑。它似乎工作得很好,除了它似乎打破了我的一些规格与以下错误:

 Failure/Error: response.should redirect_to @course
 Expected response to be a redirect to </courses/904> but was a redirect to
 <http://test.host/courses/904>

我该怎么做才能摆脱这个错误?路径似乎完全正确,除了那个讨厌的test.host之外。

2 个答案:

答案 0 :(得分:5)

您可能正在测试my_model_url而不是my_model_path

前者执行完整的URI - 包括主机。后者是没有东道主的相对路径。

请检查控制器并查看它是否使用_path或_url - 并在测试用例中使用相同的。

答案 1 :(得分:1)

你需要明确定义你的请求体。我有使用rails 3.0的应用程序...我正在使用Devise进行身份验证......我得到了一个用户指定的自定义域。

#get user from fixtures OR create them

  @user = users(:user1)

  #used devise "sign_in for testing"

    sign_in :user, @user  
  #defined my request

   request.host = 'myblog.free-blog.com'

  #get 'show_blog"

  get 'show'