864 links
  • Links Lounge
  • Home
  • Login
  • RSS Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
page 1 / 1
2 results tagged JUnit x
  • Du bon usage de jUnit

    La suite : http://blog.soat.fr/2014/02/du-bon-usage-de-junit-22/

    Je ne sais plus qui avait Shaarlié ça. Les infos semblent intéressantes.

    Tue Apr 22 11:12:23 2014 - permalink -
    - - - http://blog.soat.fr/2014/02/du-bon-usage-de-junit-12/
    Java JUnit Test
  • java - How to use Junit to test asynchronous processes - Stack Overflow

    Les tests unitaires en Java, c'est le pied grâce à JUnit ! C'est vraiment le pied ! Dans un projet, j'ai même eu l'occasion de m'en servir pour des tests d'intégrations !
    Cela devient plus compliqué dès qu'il faut tester des méthodes asynchrones utilisant des callback (ou listener, as your prefer). Je n'ai rien de complètement figé dans ma tête actuellement, mais voilà ce que je note :

    • Le framework Awaitility (http://code.google.com/p/awaitility/) permettrait de faire ça proprement, mais ça ne m'a pas tenté.
    • Certains disent qu'il faut mocker et faire en deux étapes... Mouais, à mon avis ce n'est pas adaptable dans tous les cas. Pour un test d'intégration système par exemple, il vaut mieux éviter de mocker.
    • La solution générique consiste à attendre l'appel du thread à l'aide de synchronized, wait et notify. Dans la réalité, il semble qu'il vaut mieux utiliser CountDownLatch (http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/CountDownLatch.html) afin d'éviter que le callback n'arrive avant que l'on est eu le temps d'attendre... ce serait dommage ;-)
      Actuellement, pour moi, la meilleure solution consiste donc à utiliser un code du type :

      public class AsynchronousTest
      {
      /**

      • Asynchronous helper
        */
        private CountDownLatch lock = new CountDownLatch(1);
        /**
      • Received data from the asynchronous call
        */
        private Object receiveddata;

      @Test
      public void testAsynchronousCall() throws Exception
      {
      Object parameters = null;
      myAsynchronousCall(parameters, new MyCallback()
      {
      @Override
      public void onSuccess(Object data)
      {
      receiveddata = data;
      lock.countDown();
      }
      });

      boolean releaseBeforeTimeout = lock.await(2000, TimeUnit.MILLISECONDS);
      // Check timeout
      if (!releaseBeforeTimeout) {
              // Do stuff
              fail("Timeout");
      }
      
      assertNotNull(receiveddata);
      // Other tests

      }
      }

    Fri Mar 15 09:48:23 2013 - permalink -
    - - - http://stackoverflow.com/questions/631598/how-to-use-junit-to-test-asynchronous-processes
    Java JUnit Snippet Test
Links per page: 20 50 100
page 1 / 1
Shaarli - The personal, minimalist, super-fast, no-database delicious clone by the Shaarli community - Help/documentation