Запрашивая rspec заглушку find (1), вместо этого он обнаруживает find (1, {: условие => ноль}) - PullRequest
2 голосов
/ 23 февраля 2011

Я говорю rspec:

@foo1 = Factory(:foo)
@foo2 = Factory(:foo)
Foo.stub(:find).with(@foo1.id){@foo1}
Foo.stub(:find).with(@foo2.id){@foo2}

В качестве спецификации для этого кода:

f = Foo.find(foo_id)

И я получаю эту ошибку:

expected: (1)
got: (1, {:conditions=>nil})

IЯ подумал, что, возможно, заглушку нельзя сказать, какие параметры ожидать, и я должен просто использовать should_receive, хотя я тестирую это поведение не в этой спецификации - но я пробовал это, и у него та же ошибка.

1 Ответ

3 голосов
/ 23 февраля 2011

Я думаю, что вы что-то упустили.Заглушка просто возвращает стандартный ответ, поэтому вам не нужно извлекать данные из базы данных.Вы все еще нуждаетесь в ожидании своего собственного кода.

#In some spec...
@foo = mock(Foo)
Foo.stub!(:find).and_return(@foo)
#...do stuff that calls Foo.find...
x.should be_y

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

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