3

私は最近、私のパンくずリストを扱うためにGretelというプラグインをインストールしました。それは次のエラーで私の仕様の一部を壊しているように見えることを除いて、偉大な動作しているようだ:Rails 3 - どうすれば "test.host"を取り除くことができますか?

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のことは例外です。

答えて

4

おそらくmy_model_path

元の代わりにmy_model_urlに対してテストしているが、完全なURIを行います - ホストを含​​みます。後者は、ホストのない相対パスです。

コントローラにチェックを入れて、_pathまたは_urlを使用するかどうかを確認し、テストケースで同じものを使用してください。

+1

ありがとうございます!他の人のメモとして、私がテストでURLと照合していたことは明白ではありませんでした。私のコントローラには "redirect_to @course"があり、テストでは "response.should redirect_to @course"も持っていました。明らかにまだ分かりませんが、私のテストでは、テストでのパスを "response_to course_path(@course)"として明示的に定義する必要がありました。 – sapphiremirage

+0

クール - よく知っておいてください。私はredirect_to(@course)はデフォルトのフルパスになっていると思います。 –

1

リクエストボディを定義する必要があります。ここでは、レール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' 
関連する問題