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

无法在junit中模拟BufferedWriter类

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

无法在junit中模拟BufferedWriter类

,你可以嘲笑的Java
IO类(包括它们的构造,所以未来的情况下,也得到嘲笑)与JMockit库,虽然你可能会面临困境,如

NullPointerException
Writer()
构造函数(取决于嘲讽是怎么做的,以及IO类被嘲笑)。

但是,请注意,Java IO API包含许多交互类和深层继承层次结构。在您的示例中,

FileWriter
可能还需要模拟该类,否则将创建一个实际文件。

同样,在应用程序代码中使用IO类通常只是实现细节,可以轻松更改。例如,您可以从IO流切换到编写器,从常规IO切换到NIO,或者使用新的Java
8实用程序。或使用第三方IO库。

最重要的是,尝试模拟IO类是一个非常糟糕的主意。如果(如另一个答案中所建议)更改客户端代码以将

Writer
s等 注入
到SUT中,则情况更糟。依赖注入只是不适合这种事情。

而是在本地文件系统中使用 真实 文件,最好是从测试目录中删除 真实
文件,该目录可以在测试后删除,和/或仅在读取时使用固定资源文件。本地文件快速可靠,并导致更有用的测试。某些开发人员会说“如果测试碰到文件系统,则它不是单元测试”,但这只是教条式的建议。



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

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

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