Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不使用PowerMock_Java_Junit_Mockito_Powermock - Fatal编程技术网

Java 为什么不使用PowerMock

Java 为什么不使用PowerMock,java,junit,mockito,powermock,Java,Junit,Mockito,Powermock,我正在从事一个项目,目前我们正在使用JUnit和Mockito进行测试。现在,我试图找出将PowerMock添加到混合中会有什么副作用 它的缺点是什么,我应该知道的依赖性,稳定性问题是什么 我看到它支持Java8。有什么问题吗?据我所知,获得Java7支持是一条漫长的道路 编辑:我想一个问题可以概括为: 不使用PowerMock的原因是什么?通常,如果您启动新项目,并且由于代码的体系结构,您(想要/被迫)使用PowerMock,这意味着此体系结构不好,需要改进。Power Mock允许您访问模拟

我正在从事一个项目,目前我们正在使用JUnit和Mockito进行测试。现在,我试图找出将PowerMock添加到混合中会有什么副作用

它的缺点是什么,我应该知道的依赖性,稳定性问题是什么

我看到它支持Java8。有什么问题吗?据我所知,获得Java7支持是一条漫长的道路

编辑:我想一个问题可以概括为:


不使用PowerMock的原因是什么?

通常,如果您启动新项目,并且由于代码的体系结构,您(想要/被迫)使用PowerMock,这意味着此体系结构不好,需要改进。Power Mock允许您访问模拟静态方法、构造函数等,这意味着您的代码没有遵循最佳编程原则


Power Mock应用于无法更改已提供给您的代码的传统应用程序中。这类代码通常没有单元/集成测试,即使是很小的更改也会导致应用程序出现错误。

您能否更具体地说明一下您担心PowerMock可能不可靠的方式?另外,请将问题数量限制为一个,或者至少是一个概念,就像现在这样,这篇文章完全是一篇文章。我希望现在它更清楚一点。在他们的主页上还说,“把它交给初级开发者可能弊大于利。”你确定你真的需要它吗?您正在处理遗留代码吗?对于初学者来说,几乎所有需要PowerMock处理的事情都是代码气味。这是最合适的答案。Power Mock是一个(非常有用的)专业工具,用于使遗留的、有臭味的或其他“困难的”代码可测试(不是代码臭味的一个好例子是Mock
final
类),在积极开发的代码库中广泛使用它可能是一个问题的迹象。好的,我理解powermock应该只用于遗留代码,而不是新项目。我不明白的是“为什么”?如果在新项目中使用它,是否会出现任何问题?有时可能会有需要测试的静态类,甚至是最终类,对吗?所以,面向对象代码不符合“最佳编程原则”?比如,我如何对实例化并使用有状态类“B”的类“a”进行单元测试?例如,如果“A”使用
java.net.URL
org.apache.commons.mail.SimpleEmail
,或者其他有状态的应用程序类?那么,遵循著名的API设计原则“设计继承还是禁止继承”(摘自《有效Java》一书)的类是如何制作的呢?因此,基本上你是说,任何带有静态方法或最终方法/类的Java都被认为是坏代码。为什么这些构造即使在语言中也永远不会被使用?@wsl如果静态不好用,想想写一个实用程序库,其中包含所有静态方法(因为它的实用程序),那么如何测试这些方法?