Ruby on rails Rails模型测试,而不是在需要时测试栏杆

Ruby on rails Rails模型测试,而不是在需要时测试栏杆,ruby-on-rails,api,testing,model,tdd,Ruby On Rails,Api,Testing,Model,Tdd,我正在使用Ruby 2.6.3和Rails 6作为API:“我的模型项目”具有“名称”和“价格”字段。我的测试是验证这些字段是否存在。我的测试结果如下 test 'Should have name and price ' do item = Item.new assert_not item.save, "Item saved without a name or price" end 这将导致一个绿色测试,该测试不应该发生,因为没有当前的验证。即使我添加了验证

我正在使用Ruby 2.6.3和Rails 6作为API:“我的模型项目”具有“名称”和“价格”字段。我的测试是验证这些字段是否存在。我的测试结果如下

test 'Should have name and price ' do
   item = Item.new
   assert_not item.save, "Item saved without a name or price"
 end

这将导致一个绿色测试,该测试不应该发生,因为没有当前的验证。即使我添加了验证,测试仍然是绿色的:

class Item < ApplicationRecord
  belongs_to :order
  validates :name, presence: true
  validates :price, presence: true
end
类项

不管有没有验证,我的测试都是绿色的。到底发生了什么?

当我反向断言时,不断言它失败,在这种情况下,当我添加验证时,它仍然失败。这很奇怪,因为你标题上的那个拼写错误,我现在会给你买这么多啤酒。@其他人:请不要杀我。当我反转断言时,不断言它失败,在这种情况下,当我添加验证时,它仍然失败。这很奇怪,因为你标题上的那个拼写错误,我现在会给你买这么多啤酒。@其他人:请不要杀我。