草庐IT

Powermock2

全部标签

java - 如何使用 JUnit、EasyMock 或 PowerMock 模拟静态最终变量

我想模拟一个静态最终变量以及使用JUnit、EasyMock或PowerMock模拟一个i18n类。我该怎么做? 最佳答案 有没有像mocking这样的变量?我会称之为重新分配。我认为EasyMock或PowerMock不会为您提供重新分配staticfinal字段的简单方法(这听起来像是一个奇怪的用例)。如果你想这样做,你的设计可能有问题:如果你知道一个变量可能有另一个值,即使是为了测试目的,也要避免使用staticfinal(或更常见的全局常量)。无论如何,您可以使用反射来实现(来自:Usingreflectiontochang

java - 是否可以在 PowerMock 中对私有(private)静态方法使用部分模拟?

来自PowerMockhomepage上的示例,我看到以下示例使用Mockito部分模拟私有(private)方法:@RunWith(PowerMockRunner.class)//WepreparePartialMockClassfortestbecauseit'sfinalorweneedtomockprivateorstaticmethods@PrepareForTest(PartialMockClass.class)publicclassYourTestCase{@TestpublicvoidprivatePartialMockingWithPowerMock(){Partia

java - 使用 PowerMock 模拟私有(private)方法,但仍会调用底层方法

我正在尝试模拟一个进行JNDI调用的私有(private)方法。当从单元测试中调用该方法时,它会引发异常^。我想模拟该方法以进行测试。我用了samplecodefromanotherquestionsanswer,并且在测试通过时,似乎仍然调用了底层方法。我在doTheGamble()方法中插入了一个System.err.println(),它被打印到我的控制台。很有趣,如果我注释掉第一个assertThat,测试就通过了。?:(那么,我如何模拟一个私有(private)方法以使其不被调用?importstaticorg.hamcrest.core.Is.is;importstatic

java - 使用 Powermock 时出现 NoClassDefFoundError

我正在使用PowerMock测试运行程序运行junit测试用例。我正在使用以下命令行来执行它:java-cp.:junit-4.9b2.jar:easymock-3.0.jar:powermock-easymock-1.4.8-full.jarorg.junit.runner.JUnitCoreSampleTest这样做时我收到此错误:initializationError(SampleTest)java.lang.NoClassDefFoundError:org/junit/internal/runners/TestClassRunner...我该如何解决?

java - Junit 参数化测试与 Powermock 一起 - 如何?

我一直试图弄清楚如何在Junit4中与PowerMock一起运行参数化测试。问题是要使用PowerMock,你需要用装饰你的测试类@RunWith(PowerMockRunner.class)并且要使用参数化测试,您必须使用进行装饰@RunWith(Parameterized.class)据我所见,它们似乎相互排斥!?这是真的?有没有办法解决?我试图在使用PowerMock运行的类中创建一个参数化类;像这样:@RunWith(PowerMockRunner.class)classMyTestClass{@RunWith(Parameterized.class)classParamTes

java - 使用 PowerMock 和 Mockito 模拟 Logger 和 LoggerFactory

我有以下要模拟的Logger,但要验证日志条目是否被调用,而不是内容。privatestaticLoggerlogger=LoggerFactory.getLogger(GoodbyeController.class);我想模拟用于LoggerFactory.getLogger()的任何类,但我不知道该怎么做。到目前为止,这就是我的最终结果:@BeforepublicvoidperformBeforeEachTest(){PowerMockito.mockStatic(LoggerFactory.class);when(LoggerFactory.getLogger(GoodbyeCo

unit-testing - 使用 PowerMock 在 Kotlin 中模拟包级函数

我在Kotlin中有一个包含一些包级函数的文件。//Logger.ktfuninfo(tag:String,message:String){...}funerror{....}我正在测试一个调用这个kotlin文件函数的类的函数,我想模拟它们。我知道包级函数就像Java中的静态方法,所以我一直在考虑使用PowerMock。//MyClass:ClassthatcallsLogger.ktfunctionsclassMyClass{funmyFunction(){info("TAG","Helloworld!")}}有什么想法吗? 最佳答案

java - 使用 PowerMock 模拟来自多个类的静态方法

我知道如何使用PowerMock模拟类中的静态方法。但我想使用JUnit和PowerMock模拟测试类中多个类的静态方法。谁能告诉我是否可以这样做以及如何做到这一点? 最佳答案 只需对多个类执行@PrepareForTest({Class1.class,Class2.class})。 关于java-使用PowerMock模拟来自多个类的静态方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

java - 模拟系统类时的 Mockito + PowerMock LinkageError

我有这样一个代码片段:@RunWith(PowerMockRunner.class)@PrepareForTest({Thread.class})publicclassAllMeasuresDataTest{@BeforepublicvoidsetUp()throwsException{}@TestpublicvoidtestGetMeasures(){AllMeasuresDatameasure=newAllMeasuresData();assertEquals(measure.getMeasures(),null);HashMapmap=newHashMap();measure.s

java - 模拟系统类时的 Mockito + PowerMock LinkageError

我有这样一个代码片段:@RunWith(PowerMockRunner.class)@PrepareForTest({Thread.class})publicclassAllMeasuresDataTest{@BeforepublicvoidsetUp()throwsException{}@TestpublicvoidtestGetMeasures(){AllMeasuresDatameasure=newAllMeasuresData();assertEquals(measure.getMeasures(),null);HashMapmap=newHashMap();measure.s