ruby-on-rails - 类方法和期望参数

标签 ruby-on-rails ruby-on-rails-3 rspec

我有简单的测试用例:(板有_许多链接,链接属于_板)

context "with feeds" do
  let (:board) {FactoryGirl.create(:board_tree)}

  it "returns links from all feeds" do
    expect(board.all_links.count).to eq Link.all.count
  end
end

它失败了(预期 8 得到 2) - 没关系,我期望同样的。

现在我将这个期望切换为:

expect(Link.all.count).to eq board.all_links.count

这次我认为它会失败,expected 2 got 8,但我得到的是:expected 2, got 0

知道为什么吗?对我来说,两种期望应该是相同的。

最佳答案

如果您尝试更改:

let (:board) {FactoryGirl.create(:board_tree)}

进入

let! (:board) {FactoryGirl.create(:board_tree)}

您会发现,当您反转条件时,结果不会改变。问题是,链接是由 rspec 第一次引用 board 变量时创建的,因此在第二个示例中,当 rspec 评估 expect(Link.all .count) 部分。

关于ruby-on-rails - 类方法和期望参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17362523/

相关文章:

ruby-on-rails - OmniauthCallbacksController#failure - 单击“"Don' t 允许”进行 facebook 连接时

html - 使用 Rspec 和 Capybara 测试视频

ruby-on-rails-3 - 期望 Rspec 在 Controller 中引发异常

ruby - Rspec 套件无法在 ECONNREFUSED 的 AWS Ubuntu 上运行 - 但每个测试都单独通过

ruby-on-rails - 猴子修补 use_ssl= 方法适用于 Net :HTTP but not for OpenURI in Ruby 1. 9.3?

javascript - 如何在 gmaps4rails v2 中添加折线

ruby-on-rails - rails : Filter sensitive data in JSON parameter from logs

ruby - 从现有数据库生成数据映射器模型

ruby-on-rails - 删除记录时的HTTP代码

ruby-on-rails - rails 数据库 :migrate NameError: uninitialized constant