我有下面的测试,如果有任何这种模型的装置,它会失败total_unapproved和new_total相等,而不是new_total少一个。 如果我删除加载test_helper.rb中的灯具或将它们注释掉,它就像我期望的那样运行。Rails 4:为什么灯具会使这个测试失败?
以下是将批准设置为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: "[email protected]")
# 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
任何想法为什么?我没有在任何其他测试中使用灯具,但也许我会有一天。
我们是mindreaders - 测试如何失败? – sevenseacat
对模糊性感到非常抱歉。现在应该更清楚了。 – kjs3