PowerMockito如何在测试用例之间保持模拟静态

时间:2019-06-07 03:42:23

标签: unit-testing junit4 powermockito

在使用PowerMockito模拟静态方法时,我们面临着性能不佳的问题。在测试前将静态方法模拟为静态方法时,初始化模拟过程大约需要0.5s。

但是如果我们在同一个测试类中运行许多测试用例。第一个测试用例仅花费时间,下一个测试用例即使共享相同的逻辑,运行速度也会更快。

那么在运行多个测试类时如何获得此结果?我们如何才能使第一个测试类执行模拟过程,而随后的测试类可以重用该模拟而不是从头开始模拟静态呢?

@RunWith(PowerMockRunner.class)
@PrepareForTest({ API.class })
public class TestCase2 {
      @Before
      public void beforeTest() {
            PowerMockito.mockStatic(API.class);
      }
      @Test
      public void test1() {
            API.doSomething();
      }
      @Test
      public void test2() {
            API.doSomething();
      }
      @Test
      public void test3() {
            API.doSomething();
      }
}

enter image description here

如果我们运行multipe测试类,结果将如下所示: enter image description here

我们认为,由于模拟静态以某种方式缓存在同一测试类中,因此,以下测试用例将运行得更快。  但是,有什么方法可以在测试类之间缓存模拟静态吗?

0 个答案:

没有答案