Java JUnit测试-我应该测试什么?
如果我有一个返回Java JUnit测试-我应该测试什么?,java,unit-testing,junit,Java,Unit Testing,Junit,如果我有一个返回ArrayList 我到底要测试什么呢? 在测试方面,我非常缺乏经验。对你们来说,一个有趣的问题是: 编辑: 在Stackoverflow上添加了一些我最喜欢的关于JUnit和单元测试的问题。您感兴趣的问题: 编辑: 在Stackoverflow上添加了一些我最喜欢的关于JUnit和单元测试的问题。这取决于您对该方法的期望。例如:如果有人调用了该方法并更改了检索到的列表,您希望这些更改在下次调用getter时显示出来吗?不管怎样,都要测试一下这种行为。当列表为空时,g
ArrayList
我到底要测试什么呢?
在测试方面,我非常缺乏经验。对你们来说,一个有趣的问题是: 编辑:
在Stackoverflow上添加了一些我最喜欢的关于JUnit和单元测试的问题。您感兴趣的问题: 编辑:
在Stackoverflow上添加了一些我最喜欢的关于JUnit和单元测试的问题。这取决于您对该方法的期望。例如:如果有人调用了该方法并更改了检索到的列表,您希望这些更改在下次调用getter时显示出来吗?不管怎样,都要测试一下这种行为。当列表为空时,getter返回什么?空列表还是空列表?这也应该进行测试。这取决于您对该方法的预期行为。例如:如果有人调用了该方法并更改了检索到的列表,您希望这些更改在下次调用getter时显示出来吗?不管怎样,都要测试一下这种行为。当列表为空时,getter返回什么?空列表还是空列表?这也应该进行测试。通常为访问器编写显式Junit测试有点过火(您在测试什么?return foo;)。使用诸如之类的工具可以帮助您首先针对最复杂的代码进行测试。通常为访问器编写显式Junit测试有点过火(您在测试什么?return foo;)。使用诸如之类的工具可以帮助您首先将测试工作瞄准最复杂的代码。请始终记住,测试代码也是代码,每1000行代码至少会产生4个bug。所以,测试不起作用的东西,不要为不可能破坏的东西(比如IDE生成的代码)编写测试。如果它确实中断了,请编写一个测试:)请始终记住,测试代码也是代码,并且每1000行代码至少会产生4个bug。所以,测试不起作用的东西,不要为不可能破坏的东西(比如IDE生成的代码)编写测试。如果它确实中断了,那么编写一个测试:)在一般情况下,单元测试应该测试您的方法是否完成了它声明的任务 如果您的方法返回arraylist,那么您的基本测试是断言在调用arraylist时确实返回了arraylist 测试中的下一个详细级别是检查arraylist的构造是否正确?您希望在其中填写的值是否正确?如果它应该是一个空列表,是这样吗 现在你有了“晴天”的情况(即该方法在正常条件下工作),如果合适,你应该添加一些负面(或“雨天”)条件。如果该方法接受数组的长度,那么如果传入负数或int.Max等怎么办
正如在另一个答案中所述,对于一个简单的访问器来说,这可能是过分的,但是这些原则适用于您需要编写的任何单元测试。一般来说,单元测试应该测试您的方法是否完成了它声明的功能 如果您的方法返回arraylist,那么您的基本测试是断言在调用arraylist时确实返回了arraylist 测试中的下一个详细级别是检查arraylist的构造是否正确?您希望在其中填写的值是否正确?如果它应该是一个空列表,是这样吗 现在你有了“晴天”的情况(即该方法在正常条件下工作),如果合适,你应该添加一些负面(或“雨天”)条件。如果该方法接受数组的长度,那么如果传入负数或int.Max等怎么办
正如在另一个答案中所述,对于一个简单的访问器来说,这可能有些过分,但是这些原则适用于您需要编写的任何单元测试。取决于您的需求。您可以测试:
null
,但创建一个空列表。当您将列表设置为null时,测试可以确保您确实得到一个空列表
希望它能给你一个想法 取决于您的要求。您可以测试:
null
,但创建一个空列表。当您将列表设置为null时,测试可以确保您确实得到一个空列表
希望它能给你一个想法 然后阅读一些文章并观看一些演示文稿;)只是一个相关的注释,最好向基础集合返回迭代器,而不是提供访问器方法来返回集合实例。返回迭代器会限制包含集合实例的类的可变性。@sateesh-更好的是:
返回集合。不可修改列表(mylist)代码>。有些迭代器实现了一个delete()
方法……这个问题很模糊。我建议你先自己做一些调查,这样你至少知道该问什么