3

有没有等价于

  it { should validate...


  it { should validate_uniqueness_of(

 validates_associated

就像是,

it { should validate_associate(:associated_model_object)

除了,你知道,功能。

谢谢!

4

2 回答 2

5

我认为这样的事情会起作用:

it "should validate associate_model_object" do
  m = Model.new(valid_params)
  m.associated_models.build(invalid_params)
  m.save.should eq(false)
end

如果您来自另一个方向,请用此替换中间线:

m.build_associated_model(invalid_params)
于 2013-01-15T01:29:15.850 回答
0

由于缺少 validates_associated 的内置匹配器,我这样写:

it { is_expected.not_to validate_presence_of(:child) }

context 'when child is present' do
  let(:child) { FactoryBot.create(:child) }
  before { subject.child = child }
  it { is_expected.to be_valid }

  context 'when child is present but not valid' do
    before { child.age = -1 }
    it { is_expected.not_to be_valid }
  end
end

这一行:before { child.age = -1 }需要一些关于Child's 验证的知识。从 's 单元测试的上下文来看,这并不理想Parent,但这肯定不是我犯过的最糟糕的编程罪。

于 2021-12-07T22:12:20.923 回答