我有測試功能,如果給定端口是否可用:如何強制端口不可用於測試目的?
public static boolean isPortAvailable(int port) throws IOException {
boolean isAvailable = false;
ServerSocket serverSocket = null;
if (isValidPort(port)) {
try {
serverSocket = new ServerSocket(port);
isAvailable = true;
} catch (IOException ignore) {
isAvailable = false;
} finally {
if (serverSocket != null) {
serverSocket.close();
}
serverSocket = null;
}
}
return isAvailable;
}
我需要使用JUnit測試這種方法的假條件:
@Test
public void testPortUnAvailable() throws IOException{
int port = 49613 ;
Assert.assertFalse(PortUtil.isPortAvailable(port));
}
我應該如何強制端口號碼49613或任何其他端口不可用於測試? 任何其他建議更好的方式來做同樣的事情是最受歡迎的。
嘗試將端口號更改爲無效端口,如-1? –
它檢查有效的端口...所以它會拋出一個exception.rather比測試實際功能。 public static boolean isValidPort(int port){ \t \t boolean isValid = false; \t \t如果((端口> = MIN_PORT_NUMBER &&端口<= MAX_PORT_NUMBER)){ \t \t \t的isValid = TRUE; \t \t} \t \t return isValid; \t} – user1731553
嘗試在防火牆中阻止端口 –