0

リダイレクトリンクのデータベースにRESTfulAPIを設定しようとしています。私はキュウリで多くのテストを設定しました。そのうちの1つは、ユーザーが/links/:idでGETを実行するときです。これは、ユーザーをリンクにリダイレクトすることになっています。ブラウザでは動作しますが、キュウリでこのテストを設定するのに問題があります。

Given /^The link id part of the URL matches an existing entry in the links table$/ do
 FactoryGirl.create(:users)
 FactoryGirl.create(:links, :OWNER_USERID => Users.first.id)
 Users.count.should==1
 Links.count.should==1
end

When /^you use GET on link$/ do
 visit link_path(Links.first.id)
end

指定されたlink_pathは、次のshowメソッドに移動します。

def show
 redir=Links.find_by_id(params[:id])
 redirect_to redir.target, :status=>307
end

問題は、アプリケーション/インデックスのテンプレートがないと文句を言うWhen部分でキュウリが失敗することです。何らかの理由で、リダイレクトされずに自分のサイトのroot_pathに移動します。そのようなリダイレクトが実際に機能するかどうかを確認する方法を知っている人はいますか?

4

1 に答える 1

0

Cucumber の代わりに RSpec でテストしてみましたか? このようなことを試して、それが機能するかどうかを確認してください:

describe "testing links" do
  subject { page } 
  describe "use GET on link" do
    let(:links) { Links.first }
    before { get link_path(Links.first.id) }
    specify { response.should redirect_to("http://example.com") }
  end
end

また、テストを実行する前に、テスト データベースが適切に構成され、入力されていることを確認してください。

rake db:migraterake db:test:prepare

于 2013-02-22T14:15:35.947 に答える