Можно ли вообще обойти определенные исключения в mockito
?Это звучит безумноВы хотите поймать ожидаемые исключения в модульном тестировании, которое я предполагаю.Однако я решил попробовать задать этот вопрос.Вот мой сценарий, надеюсь, что я смогу улучшить мое понимание mockito
и общих unit test
принципалов с помощью этого.
Мне нужно создать простой модульный тест для определенного класса Foo
в корпоративном веб-приложении, используяmockito
Framework модульного тестирования.
Этот класс Foo
требует подключения ldap
и database
, однако по причине я не могу использовать специфичные для среды разработки ldap
и database
в модулетестовое задание.
Мне просто нужно проверить доступ к детали ldap
, чтобы я решил использовать unboundid in memory ldap
, который позволяет создавать легкий каталог во время выполнения и удалять его из памяти после завершения тестирования.
Мой вопрос во время создания класса Foo
с помощью аннотации @InjectedMocks
, он вызывает цепную реакцию вызова многих других классов и их методов.Он выдал много исключений, которые я ожидал.
Я пытаюсь найти способ как-то игнорировать некоторые конкретные исключения, такие как загрузка / чтение файлов свойств среды, доступ к базе данных и т. Д.
Для моегоцель, мне не нужно ни читать файлы проп, ни доступ к базе данных.
Я читаю на ExpectedException
junit, который является подмножеством mockito
, если я не ошибаюсь, однако я не думаю, что его цель совпадает смое намерение обойти некоторые из исключений.Я могу ошибаться в этом.
Все, что я хочу сделать, это:
- Создание экземпляра
Foo
class - Вызов одного из его методов, который будет читать списокгруппы из
In memory ldap
- Проверьте возвращенные данные
Вот версия теста класса, проверенного водой:
@RunWith(MockitoJUnitRunner.class)
public class FooTest {
private static InMemoryDirectoryServer ldapServer;
private static Integer ldapPort = xxxxx;
@InjectedMocks
Foo footester = Foo.getInstance();
@BeforeClass
public static void setUpBeforeClass() {
try {
// execute instantiate in memory ldap..
} catch (Exception e) {
// do print out
}
}
@Test
public void testLdap() {
// before it reaches here exceptions were thrown
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
// do tear down execution
}
}