Intereting Posts
Как я могу сделать ширину счетчика равной самой большой доступной ширине элемента Можно ли проверить, видно или отменено уведомление? Android DrawerLayout не работает с ViewPager? Правый выравнивать текст в AlertDialog ImageView – фиксированный размер, независимо от размера изображения Как разместить снизу и центр макета страницы Android? Обнаружение столкновений и реакция на столкновение Фрагмент, не вызывающий onPause или onStop при использовании replace Резкая прокрутка с помощью NestedScrollView в фрагменте ViewPager внутри координатораLayout Android Google Map API V2. Как сохранить маркер в центре экрана во время прокрутки карты? Два XML-элемента с одинаковым идентификатором OnPageScrolled () не вызывается Как избежать использования экранной клавиатуры для редактирования EditText в андроиде Режимы отправки и получения DES для аутентификации DESFire Шаблоны для конвертации вкладок, чтобы просмотреть навигацию, если нет места

SecurityProvider в тестах Mockito при работе вместе с Robolectric

У нас есть проект Android, в котором мы используем MockitoTestRunner и RobolectricTestRunner для различных видов тестов.

Я написал набор модульных тестов, связанных с SSL, загрузив certs / keystores / truststores и т. Д. Для этого я использовал MockitoJUnitRunner и программным путем добавил провайдера Bouncycastle:

 Security.insertProviderAt(new BouncyCastleProvider(), 1); 

Теперь эти тесты выполняются отлично, когда они запускаются самостоятельно – например, когда я напрямую запускаю одиночные методы из тестовых классов или запускаю эти классы из меню дерева проектов , они работают нормально.

Но когда я запускаю тесты по боковому ANY- тесту, который использует RobolectricTestRunner (например, если я просто запускаю все тесты в моем проекте вместе перед фиксацией), я получаю следующее исключение:

 java.io.IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC 

Я сбит с толку. Как тестирующее средство, используемое в одном тестовом классе, влияет на работу других классов, особенно если мы используем другой тестовый бегун?


Дополнительная информация:

  • Исключение возникает только после того, как я действительно попытаюсь сделать что-то с провайдером BC (например, первый раз, когда тест пытается загрузить сертификат PKCS12) – сам insertProviderAt(...) проходит отлично …
  • Кроме того, когда я распечатываю список поставщиков для каждого тестового прогона, я вижу, что у Robolectric уже есть поставщик BC, но он все еще терпит неудачу, когда я пытаюсь его использовать.
  • Также, если я не добавлю поставщика BC, тесты по- прежнему терпят неудачу с той же ошибкой при запуске в тестовом наборе наряду с испытаниями Robolectric. При запуске в одиночку они терпят неудачу с java.security.NoSuchProviderException: no such provider: BC , поскольку мы явно указываем провайдера.

Solutions Collecting From Web of "SecurityProvider в тестах Mockito при работе вместе с Robolectric"