栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否真的有必要在JUnit拆卸方法中使对象无效?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否真的有必要在JUnit拆卸方法中使对象无效?

JUnit 4.x样式测试和测试套件与JUnit 3.x测试套件的处理方式不同。

简而言之,您 应该在JUnit3风格的测试中将字段设置为null,在JUnit4风格的测试中 无需设置

对于JUnit3.x样式测试,

TestSuite
包含对其他
Test
对象(可能是
TestCase
对象或其他
TestSuite
对象)的引用。如果您创建一个包含许多测试的套件,那么将
TestCase
在最外层套件的整个运行过程中对所有叶子对象进行硬引用。如果您的某些TestCase对象在
setUp()
其中分配了占用大量内存的对象,并且对这些对象的引用存储在未设置为
null
in的字段中
tearDown()
,则可能存在内存问题。

换句话说,对于JUnit
3.x样式测试,要运行的测试的规范引用了实际的

TestCase
对象。
TestCase
在测试运行期间,对象可访问的所有对象都将保留在内存中。

对于JUnit4.x样式测试,要运行的测试的规范使用Description对象。该

Description
对象是一个值对象,它指定要运行的内容,而不是指定如何运行它。测试由
Runner
接受
Description
测试或套件的对象并确定如何执行测试的对象运行。甚至将测试状态通知给测试侦听器也使用这些
Description
对象。

对于JUnit4测试用例默认亚军,JUnit4,保持对测试对象的引用只有大约为测试运行的持续时间。如果您使用自定义运行器(通过

@RunWith
注释),则该运行器可能会或可能不会长时间保留对测试的引用。

也许您想知道如果在JUnit4样式套件中包含JUnit3样式的测试类会发生什么?JUnit4将调用

newTestSuite(Class)
,它将为
TestCase
每个测试方法创建一个单独的实例。跑步者将
TestSuite
在整个测试过程中保持对的引用。

简而言之,如果您正在编写JUnit4风格的测试,则不必担心将测试用例的字段设置为可拆卸

null
(当然,可以释放资源)。如果您正在编写JUnit3样式的测试,
setUp()
这些测试在中分配大对象并将这些对象存储在的字段中
TestCase
,请考虑将字段设置为
null



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号