对功能测试的怀疑

时间:2009-08-04 07:32:57

标签: ruby-on-rails

以下是我的功能测试代码

def test_should_create_county

assert_difference('County.count') do
  post :create, :county => {:name=>"myname",:description=>"mydesc",:region_id=>"3" }
end
assert_redirected_to county_path(assigns(:county))

我收到的错误信息是

29)失败: test_should_create_county(CountiesControllerTest)[/ test/functional/counties_controller_test.rb:16]: “County.count”没有改变1。 &LT 3的密度;预期但是 &LT 2 - ;

请帮忙

- Karthik.k 手机 - + 91-9894991640

1 个答案:

答案 0 :(得分:0)

看起来未在create操作中创建Country对象。没有足够的陈述来确定原因,但这里有一些常见的情况(按照最常见的顺序)。

  • 验证在国家/地区模型上失败
  • 正在触发身份验证或授权
  • 通过前置过滤器进行的其他重定向(用于https或域名更改)

在Country模型上查看您的验证,测试中给出的:country选项是否构成有效模型?如果不是,我建议using factories生成有效的模型属性。

如果验证不是问题,请在过滤器之前查看控制器,以确保不会在那里进行重定向。

您可能希望将assert_redirect移到assert_difference块中,这可能会产生更具描述性的错误。