gpt4 book ai didi

ruby-on-rails - Rails - FactoryGirl - 测试模型 [验证]

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

我想测试我的模型,但我能找到的所有信息似乎都已过时。我的目标是测试每个单独的验证。我的模型:

class Author < ActiveRecord::Base
has_and_belongs_to_many :books
before_save :capitalize_names
validates :name, :surname, presence: true, length: { minimum: 3 },
format: { with: /[a-zA-Z]/ }


private
def capitalize_names
self.name.capitalize!
self.surname.capitalize!
end
end

和我的女工厂定义:

FactoryGirl.define do
factory :author do |f|
f.name { Faker::Name.first_name }
f.surname { Faker::Name.last_name }
end
end

所以现在,我想测试name是否不短于3个字符。

我的背景:

  context 'when first name is too short' do
it { expect( FactoryGirl.build(:author, name: 'Le')).to
be_falsey }
end

我知道它是无效的,因为 [FactoryGirl.build(:author, name: 'Le')] 返回哈希而不是 bool 值。那么现在,我应该如何测试呢?我应该使用什么匹配器?

最佳答案

[已解决]

使用 be_valid 而不是 be_falsey。现在它应该看起来像:

 context 'when first name is too short' do
it { expect( FactoryGirl.build(:author, name: 'Le')).not_to
be_valid }
end

关于ruby-on-rails - Rails - FactoryGirl - 测试模型 [验证],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31509632/

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