Как использовать RSpec's an_instance_of matcher - PullRequest
0 голосов
/ 24 февраля 2012

Непонятно, почему следующая спецификация не работает.Если я изменю an_instance_of на что угодно (), спецификация пройдет.Я не правильно его использую?

controller.should_receive(:authorize!).with(:show, an_instance_of(Network))
get :new


Failure/Error: get :new
       #<AffiliationsController:0x007ff5c607f238> received :authorize! with unexpected arguments
         expected: (:show, #<RSpec::Mocks::ArgumentMatchers::InstanceOf:0x007ff5c6081600 @klass=Network(id: integer, creator_id: integer, name: string, zipcode: string, created_at: datetime, updated_at: datetime, allows_invitations: boolean, network_type_id: integer, active: boolean, fee: decimal, invitation_standard_text: text, description: text)>)
              got: (:show, Network(id: integer, creator_id: integer, name: string, zipcode: string, created_at: datetime, updated_at: datetime, allows_invitations: boolean, network_type_id: integer, active: boolean, fee: decimal, invitation_standard_text: text, description: text))

Я пытаюсь проверить, что контроллер выполняет вызов метода Can_an load_and_authorize_resource.В идеале у меня было бы ожидание найти, но я бы не смог заставить его работать.Что-то вроде:

network = stub
Network.should_receive(:new).and_return(stub)
controller.should_receive(:authorize!).with(:show, network)

1 Ответ

1 голос
/ 24 февраля 2012

Похоже, что он получает сообщение с реальным классом сети, а не его экземпляром.

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