【问题标题】:Errors when test rails functionals测试轨道功能时的错误
【发布时间】:2012-07-21 00:47:26
【问题描述】:

您好,我在测试应用程序的功能部分时遇到以下错误,基本上测试运行,但我收到这些错误,我不知道它指的是什么。

AdminControllerTest:
ERROR should get index (0.13s) 
NoMethodError: undefined method `users' for #<AdminControllerTest:0x007fe9e0119000>      /Users/@@@@@/Dropbox/blind/rack/ruby/1.9.1/gems/actionpack- 3.1.3/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'


CartsControllerTest:
ERROR should create cart (0.12s) 
NoMethodError: undefined method `carts' for #<CartsControllerTest:0x007fe9de592b10>
/Users/@@@@@/Dropbox/blind/rack/ruby/1.9.1/gems/actionpack
3.1.3/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'

ERROR should destroy cart (0.17s) 
NoMethodError: undefined method `carts' for #<CartsControllerTest:0x007fe9de3569a0>
/Users/@@@@@/Dropbox/blind/rack/ruby/1.9.1/gems/actionpack-   3.1.3/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'

ERROR should get edit (0.12s) 
NoMethodError: undefined method `carts' for #<CartsControllerTest:0x007fe9e10c19d0>
/Users/@@@@@/Dropbox/blind/rack/ruby/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'

ERROR should get index (0.11s) 
NoMethodError: undefined method `carts' for #<CartsControllerTest:0x007fe9e10604f0>
/Users/@@@@@/Dropbox/blind/rack/ruby/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'

ERROR should get new (0.11s) 
NoMethodError: undefined method `carts' for #<CartsControllerTest:0x007fe9e1033fe0>
/Users/@@@@@/Dropbox/blind/rack/ruby/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'

ERROR should show cart (0.11s) 
NoMethodError: undefined method `carts' for #<CartsControllerTest:0x007fe9e10109c8>
/Users/@@@@@/Dropbox/blind/rack/ruby/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'

ERROR should update cart (0.12s) 
NoMethodError: undefined method `carts' for #<CartsControllerTest:0x007fe9de460558>
/Users/@@@@@/Dropbox/blind/rack/ruby/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'

手推车控制器测试 需要'test_helper'

class CartsControllerTest < ActionController::TestCase
setup do
@cart = carts(:one)
end

test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:carts)
end

test "should get new" do
get :new
assert_response :success
end

test "should create cart" do
assert_difference('Cart.count') do
post :create, cart: @cart.attributes
end

assert_redirected_to cart_path(assigns(:cart))
end

test "should show cart" do
get :show, id: @cart
assert_response :success
end

test "should get edit" do
get :edit, id: @cart
assert_response :success
end

什么可能导致这种情况发生?

【问题讨论】:

  • 发布您的管理员或购物车控制器测试。

标签: ruby-on-rails testing


【解决方案1】:

看起来它在加载固定装置时遇到了问题。它无法弄清楚如何解决您的setup 定义中的carts 方法。

您是否在test/fixtures/ 目录中设置了它们?

请参阅rails testing guide 了解如何正确设置它们,但我猜你想要这样的东西:

test/fixtures/carts.yml:

one:
  name: bork
  foo_attribute: bar_value
two:
  name: other_cart
  foo_attribute: blah_value

【讨论】:

  • 我现在会看看我的固定装置,然后回复你
【解决方案2】:

检查是否已创建测试数据库。

【讨论】:

  • 我已经设置了fixture ymls,但是当我尝试测试时仍然遇到同样的错误。
  • 这个答案措辞不佳。您的意思是“检查您是否已创建测试数据库”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多