- 시그널 처리 테스트 코드 작성
- 日常茶飯事
- 2011. 1. 27. 13:24
public class SignalTest { private Signal receivedSignal; private Signal signal; private SignalHandler signalHandler = new SignalHandler() { @Override public void handle(Signal signal) { receivedSignal = signal; } }; @Before public void setUp(){ receivedSignal = null; signal = null; } @Test public void testRaise() throws InterruptedException{ signal = new Signal("TERM"); Signal.handle(signal, signalHandler); Signal.raise(signal); Thread.sleep(1); assertEquals(signal.getName(), receivedSignal.getName()); } @Test(expected=IllegalArgumentException.class) public void testBREAK(){ signal = new Signal("BREAK"); Signal.handle(signal, signalHandler); //Signal already used by VM: SIGBREAK } @Test(expected=IllegalArgumentException.class) public void testQUIT(){ signal = new Signal("QUIT"); //Unknown signal: QUIT } }- 인터럽트 거는 부분은 어떻게 작성해야 하나?
- 테스트를 작성하면서 알아낸 사실
testRaise() 에서 시그널을 발생시켜도 바로 전달되지 않는다는 것을 알게 되었다.
sleep 을 하지 않으면 테스트가 실패할 경우도 생긴다.
테스트 작성의 순기능인가...ㅎㅎ
Recent comment