Как два объекта могут казаться идентичными, но не идентичными?
Имеет pickle_step, который запускает код "модель! (Владелец) .send (ассоциация) .should == модель! (Цель)"
При запуске в теге (cucumber --tags @thisonescenario) владелец и цель совпадают, и тест проходит.
При запуске с остальными сценариями (огурец) владелец и цель не являютсято же самое.
После проверки (rdebug) код говорит, что классы не совпадают, даже если они действительно кажутся.Вывод шага огурца выглядит следующим образом:
expected: #<Content _id: content_1, _type: nil>
got: #<Content _id: content_1, _type: nil> (using ==)
Diff: (RSpec::Expectations::ExpectationNotMetError)
Примечание: == перегружен библиотекой Mongo с кодом ниже:
def ==(other)
self.class == other.class &&
attributes["_id"] == other.attributes["_id"]
end
Сравнение _id верно.Self.class == other.class имеет значение false.
Проверка свойств классов, таких как потомки, предки и т. Д., Показывает, что они одинаковы.
Есть идеи?