lundi 26 janvier 2015

Wer kann mir die Ausgabe beim auführen der CounterTests sagen?

Gegeben ist folgende Klasse Counter für Aufzählungszwecke:






Java Code:






  1. public class Counter {



  2. private long counter = 0l;



  3. public long getCounter() {



  4. return counter;



  5. }



  6. void setCounter(long counter) {



  7. this.counter = counter;



  8. }



  9. public void count() {



  10. long c = counter;



  11. try {



  12. Thread .sleep(10);



  13. } catch (InterruptedException e) {



  14. e.printStackTrace();



  15. }



  16. this.counter = c + 1l;



  17. }



  18. }











Zusätzlich ist folgende Runnable-Implementierung gegeben:






Java Code:






  1. public class CounterRunnable implements Runnable {



  2. private Counter counter;



  3. public CounterRunnable(Counter counter) {



  4. super();



  5. this.counter = counter;



  6. }



  7. @Override



  8. public void run() {



  9. for (int i = 1; i <= 50; i++) {



  10. counter.count();



  11. }



  12. }



  13. }











Nun wird folgender JUnit-Test ausgeführt:


Java Code:






  1. public class CounterTest {



  2. @Test



  3. public void testCount() {



  4. Counter c = new Counter();



  5. for (int i = 1; i <= 50; i++) c.count();



  6. for (int i = 1; i <= 50; i++) c.count();



  7. assertEquals(100l, c.getCounter());



  8. }



  9. @Test



  10. public void testCount2() {



  11. Counter c = new Counter();



  12. Thread t1 = new Thread (new CounterRunnable(c));



  13. Thread t2 = new Thread (new CounterRunnable(c));



  14. t1.run();



  15. t2.run();



  16. assertEquals(100l, c.getCounter());



  17. }



  18. @Test



  19. public void testCount3() throws InterruptedException {



  20. Counter c = new Counter();



  21. Thread t1 = new Thread (new CounterRunnable(c));



  22. Thread t2 = new Thread (new CounterRunnable(c));



  23. t1.start();



  24. t2.start();



  25. Thread .sleep(2000);



  26. assertEquals(100l, c.getCounter());



  27. }



  28. }







Was sind die Ergebnisse der einzelnen Test-Methoden und warum?





Wer kann mir die Ausgabe beim auführen der CounterTests sagen?

0 commentaires:

Enregistrer un commentaire