我们能用FileUtils来模拟PowerMock包的静态方法吗?我有一个要求,我的业务代码调用FileUtils包的一个FileUtils(url,file),为了进行单元测试,我必须使用Powermock来模拟它,这会产生未完成的固执异常。
这个链接检测到org.mockito.exceptions.misusing.UnfinishedStubbingException未完成的固执,建议我们不能模拟这些文件实用程序所属的java.lang包的类?我不想为这个类创建包装器。还有别的办法吗?
发布于 2017-04-11 12:16:08
当你仔细阅读这个相关问题时,你会发现:
我不能从java.lang、java.net、java.io或其他系统类中模拟类,为什么?
但是,您打算使用Apache类FileUtil 方法。
从这个意义上说:您想要模拟静态的“共用或花园”方法。
如果这不起作用的话:你做错了。所以,简单的回答是:再读一遍他们的文档;检查代码偏离的位置。
但是除此之外:使用静态总是意味着:因为它会导致生产代码的紧密耦合;并且您会失去多态性的优势。这意味着:您在可以使用的模拟框架中受到限制(因为只有PowerMock或JMockit支持静态模拟)。
因此,我真正的答案是:花了这几行代码,并围绕这个静态方法构建了一个包装器;并且摆脱了模拟静态调用的需求。
https://stackoverflow.com/questions/43344893
复制相似问题