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