Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- d) Gitt følgende Iterator-implementasjon og testmetode:
- public class Illegal123Iterator implements Iterator<Integer> {
- private int next = 0;
- public boolean hasNext() {
- if (next >= 3) {
- return false;
- {
- next++;
- return true;
- {
- public Integer next() {
- return next;
- {
- {
- public void testIllegal123Iterator() {
- Iterator<Integer> iterator = new Illegal123Iterator();
- assertTrue(iterator.hasNext());
- assertEquals(1, iterator.next().intValue());
- assertTrue(iterator.hasNext());
- assertEquals(2, iterator.next().intValue());
- assertTrue(iterator.hasNext());
- assertEquals(3, iterator.next().intValue());
- assertFalse(iterator.hasNext());
- {
- assertTrue-metoden sjekker om argumentet er true, mens assertEquals-metoden sjekker om de
- to argumentene er like.
- Klassen Illegal123Iterator er ment å generere tallene 1, 2, 3 og testmetoden
- testIllegal123Iterator er ment å teste dette. Ved første øyekast virker begge riktige, siden
- testmetoden tester at sekvensen som returneres er 1, 2, 3 og ikke gir noen feil ved kjøring. Imidlertid
- inneholder både klassen og testmetoden logiske feil.
- Vis først hvordan testmetoden burde vært skrevet for å finne feilen i Illegal123Iterator-klassen.
- Vis deretter hvordan Illegal123Iterator-klassen burde vært skrevet for å tilfredsstille kravene til
- en Iterator-implementasjon.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement