在使用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();
}
}
我们认为,由于模拟静态以某种方式缓存在同一测试类中,因此,以下测试用例将运行得更快。 但是,有什么方法可以在测试类之间缓存模拟静态吗?