-
Unit Test - 에서 jmock을 사용해 동시성 테스트 하기UNIT TEST 2019. 9. 1. 22:48반응형
무신사에서 현재 unit test는 spock와 unit test5를 사용해서 테스트를 진행하고 있다
두가지 중 어느것을 사용해도 무방하지만 나는 spock를 사용해서 테스트를 한다
각설하고 현재 무신사에서 php로 된 코드를 java로 마이그레이션을 하고 있는데
point관련 동시성 테스트를 진행해야 했다 물론 jmeter나 그 외 테스트 툴을 사용하려 했지만 그러한 테스트는
단발성 이기 때문에 진행하지 않고 코드로 남겨서 빌드 할 때 테스트를 진행할 수 있도록 하고 싶었다
그래서 동시성 관련 테스트 libarary을 알아보았는데 GroboUtils라는 테스트 library는 너무 오래 되기도 했고 우리 프로젝트에서
사용시 에러가 나는 문제가 있어서 사용하지 않고 다른것을 찾아보던 와중
https://beyondj2ee.wordpress.com/2012/12/11/junit으로-성능-테스트stress-test-모듈-만들기/
jmock을 사용하기로 했다
사용법은 간단하다 아래와 같이 작성해주면 된다
//첫번째 파라미터는 action을 의미하고 2번째 파라미터는 쓰레드 개수를 의미함 Blitzer blitzer = new Blitzer(20, 4) @Unroll @Transactional @Rollback def "포인트 교환(동시성)을 테스트 한다" () { expect: blitzer.blitz({ //동시성 코드를 작성해주면 됨 }) where: exchangePoint || result test || test }
내부 구현 코드는 실제 코드이므로 삭제했다.
반응형