Ruby Unit测试 - 在setUp中声明的实例变量取值为nil

时间:2010-10-08 22:16:10

标签: ruby unit-testing testunit

你好我在Ruby单元测试方面遇到了麻烦,我是新手,所以一些帮助很可爱

class TestItem < Test::Unit::TestCase
 def setUp
  **@item**=Item.new('Food','Burger',120)
 end
 def testGetType
  assert_equal(**@item**.getType,'Food')
 end
end

当我在setUp()中声明它时,实例变量@item的值取 nil 并在测试函数中使用它!所以我得到一个错误,就像nil-class

的方法'getType'一样

但是当我直接使用它时,如assert_equal(Item.new('Food','Burger',120).getType,'Food'),它可以正常工作。

请提前指出我的错误

1 个答案:

答案 0 :(得分:2)

setup方法的名称为setup,而不是setUp。实际上,您将永远在Ruby中找到一个名为setUp的方法,因为方法命名的标准Ruby样式是snake_case,而不是camelCase。 (这同样适用于getTypetestGetType,BTW。它应该是get_typetest_get_type。实际上,在Ruby中,getter不以{{1为前缀实际上它应该是gettype。但请注意,在Ruby中,所有对象都已经有test_type方法,尽管已经弃用了。)