寻求使用minitest实施简单的首次测试的帮助(Rails 5,Ruby 2.7.0)
car_test.rb
require 'test_helper'
class CarTest < ActiveSupport::TestCase
test 'valid car' do
car = Car.new(title: 'SALOON', style: '1')
assert car.valid?
end
end
我的模型car.rb
class Car < ApplicationRecord
validates :title, :style, presence: true
end
当我运行测试时:rake test TEST = test / models / car_test.rb
Expected false to be truthy.
我不知道我在做什么错?谢谢。
assert thing.valid?
是一种测试反模式,已被Rails教程书所普及。这是一种反模式,因为您要一次测试每个验证,而误报和否定的可能性都很大。错误消息也完全告诉您测试失败的原因。
相反,如果要测试验证,请使用errors object。
require 'test_helper'
class CarTest < ActiveSupport::TestCase
test 'title must be present' do
car = Car.new(title: '')
car.valid?
assert_includes car.errors.messages[:title], "can't be blank"
end
test 'style must be present' do
car = Car.new(style: '')
car.valid?
assert_includes car.errors.messages[:style], "can't be blank"
end
end