Cucumber:场景创建条目并在测试之前删除它=>失败

Cucumber:场景创建条目并在测试之前删除它=>失败,cucumber,ruby-on-rails-3,capybara,Cucumber,Ruby On Rails 3,Capybara,我是cucumber的新手,我正在Rails 3应用程序中努力解决这个问题: 以下是我的gemfile中包含的gem:cucumber、cucumber rails、rspec、rspec rails、capybara、capybara envjs、database_cleaner、launchy 我设立了以下机构: require 'capybara/envjs' Capybara.javascript_driver = :envjs 在我的网站上,任何人都可以订阅这封新闻信。它可以通过aj

我是cucumber的新手,我正在Rails 3应用程序中努力解决这个问题:

以下是我的gemfile中包含的gem:cucumber、cucumber rails、rspec、rspec rails、capybara、capybara envjs、database_cleaner、launchy

我设立了以下机构:

require 'capybara/envjs'
Capybara.javascript_driver = :envjs
在我的网站上,任何人都可以订阅这封新闻信。它可以通过ajax正常工作,并显示一条类似咆哮的消息:

邮件有效=>欢迎。。。 邮件无效=>Oops。。。 当我评论这行时,下面的场景很好:我的邮件列表中应该有1封邮件

在这一行中,我有以下错误消息:我的邮件列表features/step_definitions/mailing_steps中应该有1封邮件。rb:1 预期:1, 使用==RSpec::Expections::ExpectationNotMetError获取:0

以下是我添加的步骤:

Then /^I should have ([0-9]+) mail in my mailing list?$/ do |count|
  Mailing.count.should == count.to_i
end
可能是因为数据库更干净,但我保留了默认配置:截断

有什么想法吗

PS:我应该补充一点,像个白痴一样刷新我的数据库,我看到邮件先被添加,然后被删除。

我会放下这行 调试器在

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的时间点或代码。

在哪里创建邮件?你能告诉我们在这个场景中所有的相关步骤吗?邮件只是一个邮件的集合,它可能并不明显。邮件应该在步骤中添加到db中,我按下绿色的register。这个问题可能与ajax有关吗?我尝试了你的建议,但在这一步邮件是空的。我不能把调试器放在上面,因为它只是浏览器的东西:填充并点击。这个问题可能与ajax有关吗?
Then /^I should have ([0-9]+) mail in my mailing list?$/ do |count|
  debugger
  Mailing.count.should == count.to_i
end