如果我有一个返回ArrayList
我到底测试的是什么? 在测试时我非常缺乏经验。
答案 0 :(得分:2)
这取决于您期望该方法的行为方式。例如:如果某人调用了该方法并更改了检索到的列表,您是否希望在下次调用getter时显示这些更改?无论哪种方式,测试该行为。当列表为空时,getter会返回什么?空或空列表?这也应该进行测试。
答案 1 :(得分:1)
有趣的问题:
How much should a unit test "test"
How to use Junit and Hibernate usefully
What should not be unit tested
编辑:
在Stack Overflow上添加了一些关于JUnit和单元测试的最喜欢的问题。
答案 2 :(得分:1)
通常为访问者编写显式的Junit测试通常有点矫枉过正(你在测试什么?return foo;)。使用code coverage等clover工具可以帮助您首先在最复杂的代码中定位测试工作。
答案 3 :(得分:0)
始终记住,测试代码也是代码,对于每1000行代码,您至少会产生4个错误。因此,测试什么不起作用,不要为不可能破坏的东西编写测试(比如IDE生成的代码)。如果确实破了,请写一个测试:)
答案 4 :(得分:0)
通常,单元测试应该测试您的方法是否按照它所声明的方式执行。
如果你的方法返回一个arraylist,你的基本测试就是断言在调用arraylist时确实会返回它。
测试的下一个细节是检查是否正确构造了arraylist?是否正确填写了您期望的值?如果它应该是一个空列表,是这样吗?
现在你有“晴天”的情况(即方法在正常条件下工作)你应该添加一些负面(或“下雨天”)条件,如果合适的话。如果方法接受数组的长度,如果传入负数或int.Max等,该怎么办。
正如另一个答案所述,这对于一个简单的访问器来说可能有些过分,但这些原则适用于您需要编写的任何单元测试。
答案 5 :(得分:0)
取决于您的要求。你可以测试一下:
但是,正如我所说,这取决于要求,它取决于您在调用访问者时所期望的“种类”集合。也许您允许将列表设置为null
,但创建一个空列表。当您将列表设置为null时,测试可以确保您确实得到一个空列表。
希望有一个想法给你带来帮助!