我最近安装了一个名为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之外。
答案 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'