gpt4 book ai didi

java - Powermock 和 FileUtils 包

转载 作者:行者123 更新时间:2023-11-30 06:47:59 25 4
gpt4 key购买 nike

我们可以使用 PowerMock 模拟 FileUtils 包的静态方法吗?我有一个要求,我的业务代码调用 FileUtils 包的 copyFileToURL(url,file) ,并且对于单元测试,我必须使用 Powermock 来模拟它,这会给出未完成的 stub 异常。

此链接org.mockito.exceptions.misusing.UnfinishedStubbingException Unfinished stubbing detected ,建议我们不能mock这些文件utils所属的java.lang包的类?我不想围绕这个类创建包装器。还有其他办法吗?

最佳答案

当您仔细阅读该链接的问题时,您会发现:

I cannot mock classes in from java.lang, java.net, java.io or other system classes, why?

但您打算使用 Apache Commons FileUtil 类 method .

从这个意义上说:您想要模拟静态的“公共(public)或花园”方法。

如果这不起作用:你就做错了。所以,简单的答案:阅读他们的 documentation再次;并检查您的代码哪里有偏差。

但除此之外:使用静态始终意味着:因为它会导致生产代码的紧密耦合;并且你失去了多态性的优势。这意味着:您可以使用的模拟框架受到限制(因为只有 PowerMock 或 JMockit 支持静态模拟)。

因此,我真正的答案是:花费了这几行代码,并围绕静态方法构建了一个包装器;并摆脱模拟静态调用的要求。

关于java - Powermock 和 FileUtils 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43344893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com