Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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和Jmockit是否有其他方法来模拟静态和私有方法?_Java_Junit_Mocking_Powermock_Junit5 - Fatal编程技术网

Java Powermock和Jmockit是否有其他方法来模拟静态和私有方法?

Java Powermock和Jmockit是否有其他方法来模拟静态和私有方法?,java,junit,mocking,powermock,junit5,Java,Junit,Mocking,Powermock,Junit5,我试图在JDK11 Junit5环境中模拟私有的静态方法。Junit5+Powermock+JDK11不适合我。Jmockit在STS中工作,但在VSCode中不工作 有没有人能提出不同的方法来模拟Junit5和JDK11的静态和私有方法 编辑:在我的例子中,我必须模拟静态和私有方法,因为我被要求这样做。我没有资格质疑这里的设计因为平台JUnit5允许在同一个项目中有任意数量的测试引擎,对于那些需要Powermock的测试,您可以使用JUnit4,其余的则使用Jupiter 您可能想投票支持这个

我试图在JDK11 Junit5环境中模拟私有的静态方法。Junit5+Powermock+JDK11不适合我。Jmockit在STS中工作,但在VSCode中不工作

有没有人能提出不同的方法来模拟Junit5和JDK11的静态和私有方法


编辑:在我的例子中,我必须模拟静态和私有方法,因为我被要求这样做。我没有资格质疑这里的设计

因为平台JUnit5允许在同一个项目中有任意数量的测试引擎,对于那些需要Powermock的测试,您可以使用JUnit4,其余的则使用Jupiter


您可能想投票支持这个问题:

因为平台JUnit5允许在同一个项目中有任意数量的测试引擎,所以对于那些需要Powermock的测试,您可以使用JUnit4,其余的则使用Jupiter


您可能想投票支持这个问题:

理想情况下,您应该有一个构建工具来运行测试,比如maven或gradel,而不依赖ide来运行测试。最好的解决方案是根本不模拟私有方法。你甚至不应该关心这些方法是否存在。这就是私有方法的含义。至于静态方法——这并不是那么糟糕,但如果您需要模拟静态方法,我会重新考虑应用程序的设计,因为很可能在某些地方缺少依赖项注入。@pavel您完全正确。这是一个糟糕的设计。但出于某种原因,我需要这样做。理想情况下,您应该有一个构建工具来运行测试,比如maven或gradel,而不依赖ide来运行测试。最好的解决方案是根本不模拟私有方法。你甚至不应该关心这些方法是否存在。这就是私有方法的含义。至于静态方法——这并不是那么糟糕,但如果您需要模拟静态方法,我会重新考虑应用程序的设计,因为很可能在某些地方缺少依赖项注入。@pavel您完全正确。这是一个糟糕的设计。但出于某种原因,我需要这么做。谢谢你的建议。不过,我已经用Jmockit完成了。谢谢你的建议。但是,我已经使用Jmockit完成了这项工作。