dimanche 25 janvier 2015
Wer kann mir die Ausgabe beim auführen der CounterTests sagen?
Posted on 11:28 by verona
Gegeben ist folgende Klasse Counter für Aufzählungszwecke:
public class Counter {
private long counter = 0l;
public long getCounter() {
return counter;
}
void setCounter(long counter) {
this.counter = counter;
}
public void count() {
long c = counter;
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.counter = c + 1l;
}
}
Zusätzlich ist folgende Runnable-Implementierung gegeben:
public class CounterRunnable implements Runnable {
private Counter counter;
public CounterRunnable(Counter counter) {
super();
this.counter = counter;
}
@Override
public void run() {
for (int i = 1; i <= 50; i++) {
counter.count();
}
}
}
Nun wird folgender JUnit-Test ausgeführt:
public class CounterTest {
@Test
public void testCount() {
Counter c = new Counter();
for (int i = 1; i <= 50; i++) c.count();
for (int i = 1; i <= 50; i++) c.count();
assertEquals(100l, c.getCounter());
}
@Test
public void testCount2() {
Counter c = new Counter();
Thread t1 = new Thread(new CounterRunnable(c));
Thread t2 = new Thread(new CounterRunnable(c));
t1.run();
t2.run();
assertEquals(100l, c.getCounter());
}
@Test
public void testCount3() throws InterruptedException {
Counter c = new Counter();
Thread t1 = new Thread(new CounterRunnable(c));
Thread t2 = new Thread(new CounterRunnable(c));
t1.start();
t2.start();
Thread.sleep(2000);
assertEquals(100l, c.getCounter());
}
}
Was sind die Ergebnisse der einzelnen Test-Methoden und warum?
public class Counter {
private long counter = 0l;
public long getCounter() {
return counter;
}
void setCounter(long counter) {
this.counter = counter;
}
public void count() {
long c = counter;
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.counter = c + 1l;
}
}
Zusätzlich ist folgende Runnable-Implementierung gegeben:
public class CounterRunnable implements Runnable {
private Counter counter;
public CounterRunnable(Counter counter) {
super();
this.counter = counter;
}
@Override
public void run() {
for (int i = 1; i <= 50; i++) {
counter.count();
}
}
}
Nun wird folgender JUnit-Test ausgeführt:
public class CounterTest {
@Test
public void testCount() {
Counter c = new Counter();
for (int i = 1; i <= 50; i++) c.count();
for (int i = 1; i <= 50; i++) c.count();
assertEquals(100l, c.getCounter());
}
@Test
public void testCount2() {
Counter c = new Counter();
Thread t1 = new Thread(new CounterRunnable(c));
Thread t2 = new Thread(new CounterRunnable(c));
t1.run();
t2.run();
assertEquals(100l, c.getCounter());
}
@Test
public void testCount3() throws InterruptedException {
Counter c = new Counter();
Thread t1 = new Thread(new CounterRunnable(c));
Thread t2 = new Thread(new CounterRunnable(c));
t1.start();
t2.start();
Thread.sleep(2000);
assertEquals(100l, c.getCounter());
}
}
Was sind die Ergebnisse der einzelnen Test-Methoden und warum?
Wer kann mir die Ausgabe beim auführen der CounterTests sagen?
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire