我为某些实体定义了一些固定装置,假设一个基本实体定义为:
作者具有字段( id,名称,电子邮件,random_integer )
和author.rb如下:
class Author << ApplicationRecord
after_create :randomize_variable
private
def randomize_variable
self.random_integer = Random.rand(10000)
self.save
end
end
如果我要创建一些authors.yml rspec固定装置,例如:
author1:
id: 1
name: Jack Smith
email: jack@smith.com
,然后使用以下命令从RSpec测试中调用此灯具:
...
RSpec.describe Author, type: :model do
fixtures :authors
describe 'some test' do
# Test for anything here
end
end
...
当调用 fixtures 时,测试数据库显然填充有authors.yml中定义的条目-但是,在此示例中, random_integer 属性将不设置(因为它是使用 Author#after_create 方法设置的)
这是因为RSpec固定装置只是将定义的值插入数据库中吗?实例化夹具实体时,有什么方法可以强制调用这些方法?