В моем тестовом классе у меня есть такой setUp ()
import static org.junit.Assume.*;
import org.junit.Test;
@Override
protected void setUp() throws Exception
{
super.setUp();
client = new MyClient();
client.initialize();
}
В MyClient, который является подклассом тестового класса, есть:
private static class MyClient
{
Socket socket = null;
public void initialize()
{
try
{
if ( socket == null )
{
String targetIP = System.getProperty("targetIP", "some_IP");
socket = new Socket(targetIP, 1501);
}
}
... rest of the code ...
}
public Socket getSocket()
{
return socket;
}
}
У меня есть пакет тестов, которыеиспользуйте этот сокет.Проблема в том, что когда я отключен от устройства, тесты все еще пытаются использовать сокет.Из-за этого в самом начале каждого теста я помещал:
assumeNotNull(client.getSocket());
, чтобы избежать запуска этих тестов, когда устройство недоступно.
Но когда я запускаю весь тестовый проект в Eclipse, я вижув JUnit представлении такое исключение:
org.junit.AssumptionViolatedException: got: <[null]>, expected: every item is not null
и тест помечается как неудачный (с красным крестиком).Я согласен с тем, что сокета нет, но я ожидал скорее сообщения о пропущенном тесте, а не об ошибках.Но, может быть, это правильное поведение Eclipse?Должен ли я дополнительно настроить бегун или что-то еще?