你好我在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'),它可以正常工作。
请提前指出我的错误
答案 0 :(得分:2)
setup
方法的名称为setup
,而不是setUp
。实际上,您将永远在Ruby中找到一个名为setUp
的方法,因为方法命名的标准Ruby样式是snake_case
,而不是camelCase
。 (这同样适用于getType
和testGetType
,BTW。它应该是get_type
和test_get_type
。实际上,在Ruby中,getter不以{{1为前缀实际上它应该是get
和type
。但请注意,在Ruby中,所有对象都已经有test_type
方法,尽管已经弃用了。)