Использование FlexMock в функциональном тесте рельсов - PullRequest
0 голосов
/ 21 марта 2010

У меня есть следующее действие индекса:

class ExpensesController < ApplicationController

  def index()
    @expenses = Expense.all
  end
end

Я хочу издать вызов всем в функциональном тесте. Я использую flexmock и написал следующий тест:

require 'test_helper'
require 'flexmock'
require 'flexmock/test_unit'

class ExpensesControllerTest < ActionController::TestCase

  test "should render index" do

    flexmock(Expense).should_receive(:all).and_return([])

    get :index

    assert_response :success
    assert_template :index
    assert_equal [], assigns(:presentations)
  end
end

Проблема - последнее утверждение fais со следующим сообщением об ошибке:

<[]> ожидалось, но было ноль

Я запутался в том, что я делаю неправильно. Разве это не сработает?

1 Ответ

2 голосов
/ 21 марта 2010

Ваш тест проверяет :presentations:

assert_equal [], assigns(:presentations)

Вы имели в виду :expenses?

assert_equal [], assigns(:expenses)

Ваш контроллер не устанавливает @presentations, поэтому его значение равно nil как сообщается.

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