본문 바로가기

Junit/Mockito

MultiThreaded Test with Junit


멀티스레드를 Junit에서 테스트하기입니다.

회사에서 테스트케이스를 만들다가 부딫혀서 포스트를 올렸었는데
Green님께서 원인과 좋은 레퍼런스 사이트를 알려주셨습니다.
정말 감사합니다.

간단하게 레퍼런스 사이트 (http://today.java.net/pub/a/today/2003/08/06/multithreadedTests.html)를 보고
이곳에서 소개하고 있는 GroboUtils를 사용해서 적용해보았습니다.
잘 돌아가네요 ^^

역시.. 생각만하면 있을만한 것은 다 있는 것 같습니다..
저 글이 2003년도에 쓰여진 것으로 나오니까... 부끄럽습니다.. 한참 멀은 것 같기도 하고..

처음에 안되던게 이거였습니다.

JUnit 에서 이걸 돌리면 실행된 20개의 스레드의 결과가 나오기도 전에 테스트가 끝나버리는 것이었습니다.
아쉬운대로 join을 사용해서 결과만 보고 있었는데 groboutils를 사용하면 해결이 가능했습니다.

사이트는 : groboutils.sourceforge.net 입니다.

이 라이브러리를 사용해서 변경한 코드는 이렇습니다.

Thread-7 : [7]
Thread-5 : [5]
Thread-3 : [3]
Thread-1 : [1]
Thread-4 : [4]
Thread-8 : [8]
Thread-0 : [0]
Thread-6 : [6]
Thread-2 : [2]
Thread-10 : [10]
Thread-15 : [15]
Thread-11 : [11]
Thread-14 : [14]
Thread-18 : [18]
Thread-9 : [9]
Thread-13 : [13]
Thread-16 : [16]
Thread-12 : [12]
Thread-17 : [17]
Thread-19 : [19]
main end.........................


위 참고 사이트에 나와있는 방식은 TestRunnable을 상속한 클래스를 내부 클래스로 선언해서 사용하는 것이었습니다.


Green님 덕분에 정말 좋은 내용을 알게 되었네요.. 감사합니다.