Соответствие Rspec / Rails, за исключением модели to_be_saved - PullRequest
8 голосов
/ 26 февраля 2011

Я хочу проверить, была ли модель сохранена в БД различными доступными способами. Похоже, что все эти вещи относятся к .save, но мне любопытно, есть ли лучший способ, возможно, с использованием того, что предоставляет Dirty?

1 Ответ

21 голосов
/ 26 февраля 2011

Один способ проверить, была ли создана новая запись:

expect {
  MyModel.do_something_which_should_create_a_record
}.to change(MyModel, :count).by(1)

Или, если вы хотите проверить, что значение было сохранено, вы можете сделать что-то вроде:

my_model.do_something_which_updates_field
my_model.reload.field.should == "expected value"

Или вы могли бы снова использовать expect и change:

my_model = MyModel.find(1)
expect {
  my_model.do_something
}.to change { my_model.field }.from("old value").to("expected value")

Это то, что вы имели в виду?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...