如何使用所需的belongs_to关联来测试控制器创建动作?
如果删除validates :address, presence: true,它可以工作,但是此验证是必需的。

型号/accreditor.rb

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


规范/控制器/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


同样,认证者和地址工厂也可以执行所有其他控制器操作。

最佳答案

如果进行此更改:

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


它应该工作。

但是您不应该在这里使用工厂,而是应该将参数直接放置在这里,因为这是发布表单的人的工作方式。

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

10-13 07:25