2011-01-09 2 views
0

Я новичок в RSpec, и когда я писал тестовый тест, я столкнулся с проблемой, когда тесты спецификации проходят, хотя значения возврата отличаются от того, что я указал в моих ожиданиях. Например:Как указать ожидаемые возвращаемые значения?

@q= Query.new 
    @q.should_receive(:number_to_name).with(0).and_return("no such boro") 
    @q.number_to_name(0) 

Это проходит, даже несмотря на то, Query.number_to_name возвращается другое значение, когда я называю его с 0. Я не понимаю, что сделать это.

ответ

-1

should_receive является частью насмешливых инструментов rspec.

@q.should_receive(:number_to_name).with(0).and_return("no such boro") 

Вы насмехаясь number_to_name на @q, установив ожидание того, что number_to_name будет вызываться с аргументом 0 и что издеваться вернется "no such boro". Выполнение @q.number_to_name(0) затем удовлетворяет этому ожиданию, вызвав макет. Ваша реализация number_to_name никогда не вызывалась и не тестируется.

+1

Downvoting, потому что это не отвечает на исходный вопрос, вопрос заключается в том, как указать ожидаемое значение. И вы просто объяснили, почему пример кода не работает. –

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