В моем приложении.Если в таблице users
есть столбец foo
, в результате чего activerecord добавляет foo
метод именованного экземпляра в класс User
, вызов MyEngine.bar
вернет 'xyz'
.
И если этот столбец неопределено, MyEngine.bar
вызов вернет 'abc'
.Это изменение поведения вызвано этим кодом в bar
вызове метода: current_user.respond_to?(:foo)
Как мне проверить это поведение?
Поток тестирования, который я имею в виду, выглядит следующим образом:
it "does something" do
user = FactoryBot.create(:user, foo: "something")
sign_in(user)
expect(MyEngine.bar).to eq "xyz"
# remove foo here to test how user responds when it's missing
expect(MyEngine.bar).to eq "abc"
end
Я хочу иметь возможность временно удалить столбец foo
для целей тестирования.