Detta är ett designmönster för hur man skriver ett enhetstest som utför samma test samtidigt i flera trådar.
Genom att utnyttja java.util.concurrent
på ett smart sätt säkerställer man maximal samtidighet, vilken kan avslöja trådbuggar.
Kom ihåg: det går inte att bevisa att ett program är fritt från trådbuggar. Det handlar om att göra det sannolikt att det fungerar i en flertrådad miljö.
Kodmall
@Test public void testSomething() { assertTrue(true); } @Test public void testConcurrentAuthInfoResponse() throws InterruptedException { final int threads = 100; final CountDownLatch readyToStart = new CountDownLatch(threads); final CountDownLatch startingGun = new CountDownLatch(1); final CountDownLatch finishLine = new CountDownLatch(threads); final AtomicInteger failCount = new AtomicInteger(); for (int i=0; i
Visserligen en hel del boilerplate, men det kan man faktorera ut till en Template á là Springs JdbcTemplate.
Like!
Har kodexmplet pajjat?
Hmm, det verkar ha blivit stympat i samband med att vi bytte bloggmotor från Pebble till WordPress…
Skall leta…