Ruby 单元测试 - setUp 中声明的实例变量的值为 nil
你好,我在 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在测试功能中!所以我得到一个类似 no method 'getType' for nil-class 的错误
但是当我像assert_equal(Item.new('Food','Burger',120).getType,'Food')一样直接使用它时,它工作正常。
请指出我的错误,先谢谢了
Hello I have a trouble with Ruby unit testing, I'm new to it so some help would be lovely
class TestItem < Test::Unit::TestCase
def setUp
**@item**=Item.new('Food','Burger',120)
end
def testGetType
assert_equal(**@item**.getType,'Food')
end
end
Here the value of instance variable @item takes nil when I declare it in setUp() and use it in test functions! So I get an error like no method 'getType' for nil-class
But when I directly use it like assert_equal(Item.new('Food','Burger',120).getType,'Food'),it works fine.
Please point out to my mistakes, thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
setup
方法的名称是setup
,而不是setUp
。事实上,您在 Ruby 中永远找不到名为setUp
的方法,因为方法命名的标准 Ruby 风格是snake_case
,而不是驼峰式命名法。 (这同样适用于
getType
和testGetType
,顺便说一句。它应该是get_type
和test_get_type
。嗯,实际上,在 Ruby 中,getter 没有以get
为前缀,因此实际上应该是type
和test_type
但请注意,在 Ruby 中,所有对象都已经存在。有type
方法,尽管它已被弃用。)The name of the
setup
method issetup
, notsetUp
. In fact, you will never find a method calledsetUp
in Ruby, since the standard Ruby style for method naming issnake_case
, notcamelCase
. (The same applies togetType
andtestGetType
, BTW. It should beget_type
andtest_get_type
. Well, actually, in Ruby, getters aren't prefixed withget
, so really it should betype
andtest_type
. But note that in Ruby, all objects already havetype
method, although that is deprecated.)