2010-04-21 2 views
1

Насколько я знаю, should_receive применяется только для штучных объектов. То, что я хочу, чтобы проверить, если определенный класс (не объект) получил определенное сообщение, например:should_receive in RSpec

User.should_receive(:all).once 

Как сделать это?

UPD. Обычно, написание тестов для моделей и контроллеров мы может написать User.should_receive (: smth) .once. Но в моем случае я тестирую произвольный класс из Lib папки, и как-то я всегда получаю следующее сообщение:

<User([fields]) (class)> expected :all with (no args) once, but received it 0 times> 

Любые идеи о том, почему это так? Тест как-то видит класс User, но не может проверить, получает ли он сообщение. Конечно, я десять раз проверял, что Пользователь действительно получает сообщение.

ответ

5

Easy:

User.should_receive(:all).once 

То, что я хочу, чтобы проверить, если определенный класс (не объект) получил определенное сообщение

Класс является объект!

+0

Спасибо за ответ, Йорг. Я уточнил вопрос более подробно. – gmile