Как проходят оба этих теста? - PullRequest
0 голосов
/ 06 октября 2010

Для тестирования я использую Shoulda, Mocha и Test :: Unit.У меня есть следующий контроллер и тест:

class FoosController < ApplicationController
  caches_action :show
  def show
    @foo = requested_foo
  end
  private
  def requested_foo
    Foo.find(params[:id])
  end
end


class FoosCachingTest < ActionController::IntegrationTest
  def setup
    @foo = Foo.first
    @session = open_session
  end

  context 'FoosController#show' do
    setup do
      @session.get('/foos/1')
    end

    before_should 'not fetch the Foo from the database' do
      FoosController.any_instance.expects(:requested_foo).never
    end

    before_should 'fetch the Foo from the database' do
      FoosController.any_instance.expects(:requested_foo).once.returns(@foo)
    end
  end
end

Как получается, что оба этих тестов могут пройти?Я явно не истекаю своими издевательствами в любой момент.Известно ли, что Мохка и Должа плохо взаимодействуют в этом отношении?

1 Ответ

0 голосов
/ 06 октября 2010

Aha!Проблема в том, что ожидания действительно не оправдываются, но ошибки, которые они генерируют, поглощаются обработкой ошибок контроллера.Проверка правильности отображения действия приводит к сбою правильного теста.

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