1

購入フォームに記入して、リクエスト仕様で注文プロセスをテストしようとしています。

describe "CC order" do
  before do
    visit order_path "product"
    fill_in "full_name", with: "test name"
    fill_in "email", with: "test@email.com"
    fill_in "card_number", with: "4242424242424242"
    fill_in "card_cvc", with: "123"
    # etc...

    click_on "complete-button"
  end

  it "should display confirmation message" do
    page.should have_content "Thanks for your order!"
  end
end

新しいユーザーと注文は、購入フォームが送信された後に保存する必要があり、開発では正しく保存されます。ただし、注文を処理する代わりに、データベースがロックされていることが通知されるため、テストは失敗します。

データベースがロックされている

私はトランザクションフィクスチャをオンにしており、他のいくつかのテストでそれらを使用しています。注文プロセスをテストする別の方法はありますか?

page編集: it ブロックで使用すると開くようです。テスト ブロックを空にするだけで、すべて正常に動作します。

4

1 に答える 1

0

アイデアが尽きたので、開発+テストでsqliteからpostgresqlに切り替えました。これで問題は解決しました。

于 2012-11-15T21:03:01.117 に答える