gpt4 book ai didi

ruby-on-rails - RSpec 错误 : expected: nil, 得到:[](使用 == 进行比较)

转载 作者:行者123 更新时间:2023-11-28 21:31:35 25 4
gpt4 key购买 nike

我正在尝试使用 Rspec 在 Controller 中测试这一行:

@dreams = Dream.public_dreams.includes(:user).where("users.type_id = ?", 5)

我在 Controller 测试中用这一行来测试它:

Dream.public_dreams.select { |dream| dream.user.type_id = 5 }.should eq(@dreams)

但是,我收到了这个错误:

expected: nil, got [] (compared using ==)

最佳答案

@dreams 是一个实例变量,这意味着它绑定(bind)到一个类。 Controller 中的 @dreams 与测试中的 @dreams 不同。在 Ruby 中,任何对从未设置过的实例变量的引用都将为 nil

你可以通过做“修复”你的测试


Dream.public_dreams.select { |梦想| dream.user.type_id = 5 }.should eq([])

但您可能想要该数组中的某些内容。您可能没有返回任何内容,因为您的测试环境中的数据库中没有任何数据(或者可能只是没有该 ID)。

关于ruby-on-rails - RSpec 错误 : expected: nil, 得到:[](使用 == 进行比较),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com