1

私はきゅうりの初心者で、Rails 3アプリで苦労しています:)

私の宝石ファイルに含まれる宝石は次のとおりです: cucumber、cucumber-rails、rspec、rspec-rails、capybara、capybara-envjs、database_cleaner、launchy

私は以下を設定しました:

require 'capybara/envjs'
Capybara.javascript_driver = :envjs

私のウェブサイトでは、誰でもニュースレターを購読することができます。ajax を介して正常に動作し、うなり声のような素敵なメッセージを表示します。

  • メール有効 => ようこそ...
  • メール無効 => おっと...

行をコメントすると、次のシナリオは正常に機能します: I should have 1 mail in my mailing list.

この行では、次のエラー メッセージが表示されます。And I should have 1 mail in my mailing list # features/step_definitions/mailing_steps.rb:1 expected: 1, got: 0 (using ==) (RSpec::Expectations::ExpectationNotMetError)

@javascript
Scenario: Entering Valid Mail
Given I am on the about page
When  I fill in "mailing[mail]" with "cucumber@cucumber.com"
And   I press "REGISTER"
Then  I should be on the about page
And   I should have 1 mail in my mailing list
And   I should see "Welcome" within "#gritter-notice-wrapper"

追加したステップは次のとおりです。

Then /^I should have ([0-9]+) mail in my mailing list?$/ do |count|
  Mailing.count.should == count.to_i
end

データベースクリーナーが原因かもしれませんが、デフォルトの構成を維持しました:truncation

何かアイデアはありますか?

PS: ばかのようにデータベースを更新することを追加する必要があります。メールが最初に追加されてから削除されていることがわかります。

4

1 に答える 1

0

ラインデバッガーをドロップします

Then /^I should have ([0-9]+) mail in my mailing list?$/ do |count|
  debugger
  Mailing.count.should == count.to_i
end

そして、メーリングがいくつあるかを調べます。

デバッガーには、gem 'ruby-debug' または 'ruby-debug19' をインストールする必要があります。

Mailing.count が 0 の場合は、デバッガーの行をテストの早い段階に移動し、1 になっている場所を見つけてから、0 になる時点またはコードを分離します。

于 2011-03-16T04:23:22.953 に答える