在rails功能测试中使用FlexMock

时间:2010-03-21 16:55:07

标签: ruby-on-rails

我有以下索引操作:

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,出现以下错误消息:

  

的百分比抑制率]&GT;预期但是没有。

我很困惑我做错了什么。这应该不起作用吗?

1 个答案:

答案 0 :(得分:2)

您的测试检查:presentations

assert_equal [], assigns(:presentations)

您的意思是:expenses吗?

assert_equal [], assigns(:expenses)

您的控制器未设置@presentations,因此报告的值为nil