gpt4 book ai didi

ruby-on-rails - 测试 Controller 使用 belongs_to 关联创建操作

转载 作者:行者123 更新时间:2023-12-04 06:10:29 25 4
gpt4 key购买 nike

您如何测试 Controller 创建操作与所需的 belongs_to 关联?如果我删除 validates :address, presence: true 它有效,但此验证是必要的。

模型/accreditor.rb

class Accreditor < ActiveRecord::Base
belongs_to :address, dependent: :destroy
validates :address, presence: true

规范/ Controller /accreditors_controller_spec.rb

describe AccreditorsController do
describe 'POST #create' do
it 'saves the new accreditor in the database' do
address = FactoryGirl.create(:address)
accreditor = FactoryGirl.build(:accreditor, address: address)
expect{
post :create, accreditor: accreditor.attributes
}.to change(Accreditor, :count).by(1)
end
end

此外,授权者和地址工厂为所有其他 Controller 操作工作。

最佳答案

如果您进行此更改:

accreditor = FactoryGirl.build(:accreditor, address_id: address.id)

它应该可以工作。

但是你不应该在这里使用工厂,你应该直接把参数放在那里,因为这是发布表单的人会做的。

关于ruby-on-rails - 测试 Controller 使用 belongs_to 关联创建操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436711/

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