在我的测试课中,我有这样的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的正确行为吗? 我应该另外配置跑步者还是其他东西?