在Rails中,可以通过使用attr_accessor
方法来创建一个虚拟的属性,然后在该属性的getter方法中调用相应的方法。在RSpec中,可以使用FactoryGirl来创建测试数据。
下面是一个示例,展示如何让一个字段指向一个方法:
attr_accessor
方法创建一个虚拟属性,例如virtual_field
:class MyModel < ApplicationRecord
attr_accessor :virtual_field
def method_to_be_called
# 这里是方法的具体实现
end
end
RSpec.describe MyModel, type: :model do
let(:my_model) { create(:my_model, virtual_field: my_model.method_to_be_called) }
# 其他测试代码...
end
在上述示例中,create(:my_model, virtual_field: my_model.method_to_be_called)
表示使用FactoryGirl创建一个名为my_model
的测试对象,并将虚拟属性virtual_field
的值设置为my_model.method_to_be_called
方法的返回值。
这样,通过在模型中创建虚拟属性,并在测试中设置虚拟属性的值为相应方法的返回值,就可以让一个字段指向一个方法。
领取专属 10元无门槛券
手把手带您无忧上云