1

Rails2.3.14アプリケーションでWebUIをテストしようとして、cucumber(cucumber(1.1.0)cucumber-rails(0.3.2))を使用しています。問題は、機能ステップでユーザーを作成していることです。

visit("/")

@admin_user = Factory.create :admin_user
@admin_user.email
@admin_user.update_attributes :password => "testtest", :password_confirmation => "testtest"
@admin_user.register!
@admin_user.activate!

click_link("Login")
fill_in "Email:", :with => @admin_user.email
fill_in "Password:", :with => "testtest"

find("input[type=image]").click

しかし、サイトにアクセスしてログインしようとすると、ユーザーがデータベースに表示されません。new_recordを呼び出しますか?on @admin_userはfalseを返しますが、railsアプリケーションはそれを認識できません。このレコードが表示されない理由について何かアイデアはありますか?キュウリとレールアプリケーションの両方が同じデータベースを指していることを確認しました。

4

3 に答える 3

2

@Ernestが言ったように、2つの接続があります。ただし、変換をオフにするとスイートの速度が低下するため、次のコードを使用してください:https ://gist.github.com/470808 、および次のように読んでください:http: //blog.plataformatec.com.br/2011/12/three-tips-テストスイートのパフォーマンスを改善する/特にセクション3。

于 2012-04-13T07:35:57.367 に答える
0

それらが同じデータベースを指していると確信していますか?通常、キュウリはテスト環境で実行され、サイトにアクセスすると、開発環境または本番環境のいずれかになります。

テスト環境が開発データベースまたは本番データベースを指すようにconfig/database.ymlを変更した場合、Cucumberは通常、ロールバックするトランザクションで各シナリオをラップします。

于 2012-04-13T07:22:10.693 に答える
0

CucumberとRailsが2つの異なる接続を使用している場合に発生する可能性があります。その場合、トランザクションをオフにする必要があるかもしれません。ここでのトピックの詳細:https ://github.com/cucumber/cucumber/wiki/Browsers-and-Transactions

于 2012-04-13T07:31:00.207 に答える