我的问题是我想模拟我的自定义验证方法,该方法从数据库返回一些数据(id 列表 - 检查给定的 id 是否在我的数据库中)。
少说话,多代码:在我的 Newsletter::Contract::Create 类中
validation do
configure do
config.messages_file = "config/error_messages.yml"
def publisher_exists?(value)
Publisher.where(id: value).present?
end
end
required(:publisher_id).filled(:publisher_exists?)
end
在测试中,我尝试运行
expect(Newsletter::Contract::Create).to receive(:publisher_exists?).and_return(true)
但显然我收到
Newsletter::Contract::Create does not implement: publisher_exists?
所以问题是我的自定义验证方法需要什么对象,所以我可以模拟它?;]