如何在Java1.4中模拟静态方法?

如何在Java1.4中模拟静态方法?,java,junit,mocking,java1.4,Java,Junit,Mocking,Java1.4,我将JUnit与Mockito一起使用。可以模拟静态方法,但似乎不可能在Java1.4中使用它,特别是因为它需要注释 还有其他选择吗 谢谢。就我个人而言,我更喜欢尽量减少模拟的使用。如果静态方法在您的代码中,我会对其进行修改,使其更便于单元测试。也许它不应该是静态的。或者,如果必须这样做,您可以使用一个setup方法来确定静态方法的行为 如果静态方法不在代码中,那么您可能运气不好。(这里是无耻的自我推销) 有一个项目允许您在Java1.4中使用PowerMock。这有点冗长,并非所有功能都受支持

我将JUnit与Mockito一起使用。可以模拟静态方法,但似乎不可能在Java1.4中使用它,特别是因为它需要注释

还有其他选择吗


谢谢。

就我个人而言,我更喜欢尽量减少模拟的使用。如果静态方法在您的代码中,我会对其进行修改,使其更便于单元测试。也许它不应该是静态的。或者,如果必须这样做,您可以使用一个setup方法来确定静态方法的行为

如果静态方法不在代码中,那么您可能运气不好。

(这里是无耻的自我推销) 有一个项目允许您在Java1.4中使用PowerMock。这有点冗长,并非所有功能都受支持,但可能值得一试。

尝试并仔细检查是否可以重构代码(或者是遗留代码?)。Mockito谈到了模拟静态方法

Mockito更喜欢面向对象和依赖注入,而不是难以理解和更改的静态过程代码。()


检查相关帖子,尤其是乔恩的回答。

一个选择(如果不是你)需要升级目标java平台。Java1.5/5.0于2004年问世。我们正在进行迁移,但与此同时,我们仍坚持使用1.4。如果您正在迁移,请等待迁移完成。在此之前,请使用简单但丑陋的方法。不幸的是,这是我目前无法更改的遗留代码。但我同意,长期目标是根本不使用静态方法。我个人喜欢使用模拟,以便能够进行真正的单元测试。我同意它不应该是静态的,但不幸的是我现在不能改变它。看起来不错。尽管我不想模仿静态方法,但这可能是对给定问题的最佳答案。