context "deep copy some record" do it do duplicate = call_the_copy_method(original) check_same = lambda { |&block| expect(block.call(duplicate)).to eq(block.call(original)) } check_same.call { |x| x.name } check_same.call { |x| x.list_of_shared_items } check_same.call { |x| x.list_of_copied_items.map { |item| item.name } } # same as: expect(duplicate.name).to eq(original.name) expect(duplicate.list_of_shared_items).to eq(list_of_shared_items) expect(duplicate.list_of_copied_items.map { |item| item.name }).to eq(original.list_of_copied_items.map { |item| item.name }) end end