ruby-on-rails - 错误测试创建操作

标签 ruby-on-rails ruby-on-rails-3 unit-testing testing ruby-on-rails-3.2

我正在尝试使用 factory girl 来测试我在 Rails 中的创建操作。我不断得到:

"Event.count" didn't change by 1.
<2> expected but was
<1>.

当我运行测试时。我认为我没有做任何改变我的测试或 Controller 的事情:

我的测试是这样的:

test "should get create" do
    assert_difference('Event.count') do
      post :create, FactoryGirl.attributes_for(:event)
    end
    assert_not_nil assigns(:event)
    assert_response :success
  end

我也尝试过使用 FactoryGirl.build(:event)。我以前用过,我认为这是我读过的正确方法。

这是我的工厂:

   factory :event do
        name 'First Event'
        street '123 street'
        city 'Chicago'
        state 'IL'
        date '1/12/2012'
      end

这是我的 Controller Action

def create
    @event = Event.new(params[:event])
    @event.save
end

知道我做错了什么吗?

最佳答案

为了确定您的错误范围,请尝试在您的操作中添加一个调试器:

def create
  @event = Event.new(params[:event])
  debugger
  @event.save
end

看看您是否手动解决了 @event.save 以及哪些错误可能会阻止它。 :D

关于ruby-on-rails - 错误测试创建操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030096/

相关文章:

ruby-on-rails - 如何在 Rails (3) 中用回形针裁剪特定区域?

mysql - Rails 找到 :conditions

c++ - 在 TFS 测试阶段运行 C++ 单元测试

.net - 使用 dotCover 时测试结果不一致

ruby-on-rails - 无法使用带 Rails 的 PostgreSql 创建数据库

ruby-on-rails - Rails 3 中的 find_or_create_by 和更新以创建记录

mysql - 带有命名空间的模型 - 错误的表名(没有命名空间)

ruby-on-rails-3 - Rails3 : Avoiding select n+1 with the Ancestry Gem?

mysql - Rails rake 数据库 :create not working

c# - 流利的断言 : Approximately compare a classes properties