Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Как ограничить доступ в интернет отдельному классу ?

#java #junit


При написании тестов на jUnit 4 столкнулся с необходимостью сымитировать потерю доступа
в интернет для проверки устойчивости приложения. Есть какие-нибуть стандартные механизмы,
которые это могут обеспечить ибо отключать WiFi при запуске тестов некошерно же. 
    


Ответы

Ответ 1



Все верно - ваш тест не должен зависеть от конфигурации и быть "полу" автоматическим. Скорее всего у вас сильно связанный код. Разделите на два метода - нормальное выполнение, и аварийное(скорее всего, метод с выбросом Exception). Тогда их можно будет проверить отдельно. Был бы код, объяснил бы с примером :)

Ответ 2



Вынесите кусок кода отвечающий за коннект в отдельный класс расширяющий стандартный функционал, например для сокетов: public TestSocket extends Socket { private Class myClass; public TestSocket(Class myClass) { super(); this.myClass=myClass; } @Override public InpuStream getInputStream() { if(myClass.getName().indexOf("MyTestSuite") > 0) { //если это тестовый класс return new ByteArrayInputStream(new byte[0])); //возвращаем пустой поток return super.getInputStream(); } } } Ну в общем схема как идея - дальше применительно к вашему коннекту можно развить и дальше.

Комментариев нет:

Отправить комментарий