Ruby 单元测试 - setUp 中声明的实例变量的值为 nil

发布于 2024-09-26 21:32:45 字数 469 浏览 6 评论 0原文

你好,我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不美如何 2024-10-03 21:32:45

setup 方法的名称是 setup,而不是 setUp。事实上,您在 Ruby 中永远找不到名为 setUp 的方法,因为方法命名的标准 Ruby 风格是 snake_case,而不是 驼峰式命名法。 (这同样适用于 getTypetestGetType,顺便说一句。它应该是 get_typetest_get_type。嗯,实际上,在 Ruby 中,getter 没有以 get 为前缀,因此实际上应该是 typetest_type 但请注意,在 Ruby 中,所有对象都已经存在。有 type 方法,尽管它已被弃用。)

The name of the setup method is setup, not setUp. In fact, you will never find a method called setUp in Ruby, since the standard Ruby style for method naming is snake_case, not camelCase. (The same applies to getType and testGetType, BTW. It should be get_type and test_get_type. Well, actually, in Ruby, getters aren't prefixed with get, so really it should be type and test_type. But note that in Ruby, all objects already have type method, although that is deprecated.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文