Мы сталкиваемся с проблемой низкой производительности при использовании PowerMockito для макетирования статического метода.Если макетировать статический метод перед тестом, инициализация процесса имитации занимает около 0,5 с.
Но если мы запустим много тестов в одном и том же классе тестов.для первого теста требуется только время, последующие будут выполняться намного быстрее, даже если они используют ту же логику.
Итак, как мы можем достичь этого результата при запуске нескольких тестовых классов?Как мы можем заставить первый тестовый класс выполнять фиктивный процесс, и следующий тестовый класс может использовать эту имитацию вместо того, чтобы начинать заново с статической?
@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();
}
}
Если мы запустим несколько тестовых классов, результат будет примерно таким:
Мы думаем, что, поскольку фиктивная статика как-то кэшируется в том же тестовом классе, по этой причине,следующий тест будет работать быстрееНо есть ли способ кэшировать макет статики между тестовыми классами?