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

在单元测试中使用反射是不好的做法吗?

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

在单元测试中使用反射是不好的做法吗?

恕我直言,反射实际上应该只是万不得已,保留用于单元测试遗留代码或无法更改的API的特殊情况。如果您正在测试自己的代码,那么您需要使用Reflection的事实意味着您的设计不可测试,因此您应解决此问题,而不要求助于Reflection。

如果您需要在单元测试中访问私有成员,则通常意味着所涉及的类具有不合适的接口,并且/或者尝试执行过多操作。因此,应该修改其接口,或者应该将某些代码提取到一个单独的类中,在这些类中可以将那些有问题的方法/字段访问器公开。

请注意,在一般情况下使用Reflection会导致代码变得更加困难,除了难以理解和维护之外。在通常情况下,编译器会检测到一整套错误,但是使用反射时,它们只会作为运行时异常而出现。

更新:
正如@tackline所指出的,这仅涉及在自己的测试代码中使用反射,而不涉及测试框架的内部。JUnit(可能还有其他所有类似的框架)使用反射来标识和调用您的测试方法-这是对反射的一种合理且局部的使用。如果不使用Reflection,将很难或不可能提供相同的功能和便利。OTOH完全封装在框架实现中,因此它不会使我们的测试代码复杂或妥协。



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

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

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