2012-05-31 2 views
5

У меня есть такой код:any_instance не should_receive работает правильно

@dns = "#{params[:domain].split('/').reverse.join('.')}.#{params[:zone]}" 
w = Whois::Client.new 
@r = w.query(@dns) 

с маршрута:

match "domains/:zone/*domain" => "domains#show" 

Я использую Whois Gem

и я хочу, чтобы проверить это, так У меня есть тест:

it "should query 'google.com.ua' from /ua/com/google" do 
    get :show, :zone => 'ua', :domain => 'com/google' 
    dns = "google.com.ua" 
    Whois::Client.any_instance.should_receive(:query).with(dns) 
end 

И в результате я получаю:

Exactly one instance should have received the following message(s) but didn't: query 

Где может быть проблема? Я на 100% уверен, что .query называется

+0

http://sscce.org/. Ваш вопрос короткий, но не самодостаточный; напишите полный сценарий, чтобы люди могли запустить его и воспроизвести проблему. – tokland

+0

@tokland обновлено – Uko

ответ

11

Похоже, вы можете настроить ожидание после того, как вы уже вызвали метод запроса?

+0

Как это определить? – Uko

+0

Черт, я понимаю, моя вина. Doh – Uko

+3

'should_receive' проверяет будущее, а не прошлое –

Смежные вопросы