Flowdock

Notes posted by michalhantl

RSS feed
August 26, 2019
0 thanks

expect_any_instance_of(ActiveRecord::Relation).to receive(:create_with) and others do not work

If you’re doing

expect_any_instance_of(ActiveRecord::Relation).to receive(:create_with) 

and it does not work, try:

expect_any_instance_of(ActiveRecord::Associations::CollectionProxy).to receive(:create_with) { |proxy, attributes|
  expect(proxy.klass).to eq(RecordClass)
  expect(attributes[:....]).to eq(...)
  double('find_or_create_by!' => Proc.new {})
}

or when testing “find_or_create_by”

expect_any_instance_of(ActiveRecord::Associations::CollectionProxy).to receive(:find_or_create_by) { |proxy, attributes|
  expect(proxy.klass).to eq(RecordClass)
  expect(attributes[:....]).to eq(...)
}