我有简单的测试用例:(板有_许多链接,链接属于_板)
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/