Как сохранить макет статичным между тестовыми случаями с помощью PowerMockito - PullRequest
0 голосов
/ 07 июня 2019

Мы сталкиваемся с проблемой низкой производительности при использовании 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();
      }
}

enter image description here

Если мы запустим несколько тестовых классов, результат будет примерно таким: enter image description here

Мы думаем, что, поскольку фиктивная статика как-то кэшируется в том же тестовом классе, по этой причине,следующий тест будет работать быстрееНо есть ли способ кэшировать макет статики между тестовыми классами?

...