Исключение при использовании SpringRunner с PowermockRunner - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь протестировать API JavaMail и использую SpringRunner и PowerMockRunner, но это не удается.

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringRunner.class)
@PowerMockIgnore(value = {"javax.management.*"})
@SpringBootTest
public class BaseITest {

  @PrepareForTest(value = {MyStaticHelper.class})
  @Test
  public void testListFolders() {
     // mock static method
     // Use JavaMail API
  }
}

Я получаю это исключение:

javax.mail.MessagingException: java.security.NoSuchAlgorithmException: class configured for SSLContext: sun.security.ssl.SSLContextImpl$DefaultSSLContext not a SSLContext

Если я удаляю @PowerMockIgnore(value = {"javax.management. *"}) тогда я получаю это исключение:

Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/powermock/core/classloader/MockClassLoader) previously initiated loading for a different type with name "javax/management/MBeanServer"

Используются следующие версии зависимостей:

  • powermock-api-mockito:1.7.1
  • powermock-module-junit4: 1.7.1
  • mockito-all: 2.0.2-beta
  • mockito-core: 2.8.9

Может кто-нибудь помочь?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018
  1. Использовать powermock-api-mockito2

  2. Попробуйте @PowerMockIgnore ("javax.net.ssl. *") https://groups.google.com/forum/#!topic/powermock/v4nreP2AnOQ

0 голосов
/ 23 мая 2018

Похоже, ошибка.

Решением, которое помогло в моем случае, было сужение загруженных конфигураций.

Попробуйте указать минимальный набор конфигураций для загрузки:

@SpringBootTest(classes = SomeSpesificConfiguration.class)
...