gpt4 book ai didi

ruby-on-rails - rails 4 : Why do fixtures make this test fail?

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

我有下面的测试,如果这个模型有任何固定装置,它会失败,total_unapproved 和 new_total 相等,而不是 new_total 少一。如果我删除加载 test_helper.rb 中的固定装置或将它们注释掉,它会按预期运行。

这是将批准设置为 true 的类函数。它绝对有效。

def InviteRequest.approve_invites(number)
inv_reqs = InviteRequest.where("approved = ?", false).first(number)
inv_reqs.each do |inv_req|
inv_req.approved = true
inv_req.save
inv_req.send_approved_email
end
end

下面是调用上述函数的测试。

require 'test_helper'

class InviteRequestTest < ActiveSupport::TestCase

test "class method approve_invites(number) should approve 'number' InviteRequests" do
# ensure there is at least one instance
inv_req = InviteRequest.create(email: "hobojoe@test.com")

# set all InviteRequests.approved to false
InviteRequest.all.each {|r| r.approved = false; r.save}
total_unapproved = InviteRequest.where("approved = ?", false).count
Rails.logger.info "\nUnapproved Before: #{total_unapproved}"
InviteRequest.approve_invites(1)
new_total = InviteRequest.where("approved = ?", false).count
Rails.logger.info "Unapproved After: #{new_total}\n"

assert_equal total_unapproved - 1, new_total
end
end

知道为什么吗?我没有在任何其他测试中使用这些装置,但也许有一天我会使用。

最佳答案

我的固定装置无效,更改它们解决了问题。我仍然不确定事情是如何失败的。我的装置看起来像这样:

one:
email: MyString

two:
email: MyString

这将无法通过我的唯一性验证并且不会保存,但我不确定为什么新创建的模型不会将“已批准”设置为 true 并且仍然被保存,因为它是正确的。

无论如何,将固定装置更改为固定的东西。

one:
email: someguy@example.com

two:
email: somegirl@example.com

关于ruby-on-rails - rails 4 : Why do fixtures make this test fail?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582835/

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