-1
我很難找到一種方法來單元測試一些使用多線程的代碼。下面是給我的問題代碼:java單元測試ExecutorService
public class ThreadHandler {
private ExecutorService executorService;
private boolean isFinished = false;
public void start() {
isFinished = false;
executorService = Executors.newFixedThreadPool(10);
}
public void stop() {
isFinished = true;
executorService.shutdown();
}
public void listen(final ServerSocket serverSocket) throws IOException {
Runnable runnable = new Runnable() {
@Override
public void run() {
Socket socket = null;
try {
while (!isFinished) {
socket = serverSocket.accept();
executorService.submit(new ClassIWantToMockOut(socket));
}
} catch (IOException e) {
...
} finally {
try {
socket.close();
} catch(IOException e) {
...
}
}
}
};
this.createThread(runnable);
}
public void createThread(Runnable runnable) {
Thread serverThread = new Thread(runnable);
serverThread.start();
}
}
我想用嘲諷了ClassIWantToMockOut(插座)來測試聽方法。但據我所知,不可能嘲笑一個類的構造函數。有什麼我可以做的,使這個代碼更單元測試友好?
「下面是給我的問題的代碼:」,什麼問題? – dnuka