# doppelten Code vermeiden



## usrr (5. Dez 2011)

Hallo,

ich habe ein paar Tests geschrieben und stelle fest, dass sich sehr viel Code wiederholt. Der Code der sich von Testfall zu Testfall unterscheidet liegt in einer komplizierten Schleife.

Beispiel:


```
boolean works = true;

for (int a = -49; a < 50; ++a) {
  for (int b = -49; b < 50; ++b)
    works = works && teste(a,b);
  }
}
assertTrue(works);
```

Kann man den doppelten Schleifencode vermeiden?


----------



## darekkay (5. Dez 2011)

Eine doppelte Schleife ist weder "kompliziert", noch irgendwie unüblich. Für diesen Fall (alle Zahlen auf der x- UND y-Achse durchgehen) eigentlich auch die einfachste Lösung.


----------



## Gast2 (5. Dez 2011)

usrr hat gesagt.:


> Kann man den doppelten Schleifencode vermeiden?



Ja klar kann man das. 

Das was gleich ist in eine separate Methode auslagern, welche dann von den Tests aufgerufen wird. Wie genau man das in deinem Fall macht lässt sich ohne mehr Beispielcode schlecht erklären.


----------



## XHelp (5. Dez 2011)

An dieser Stelle vermutlich gar nicht. Diese verschachtelten Schleifen ergeben schon Sinn.
P.S. Höhstens sowas wie:

```
boolean value = true;
for (int i=-49;i<49;i++) {
  value &= testAllWith(i);
}
...
private boolean testAllWith(int testNumber) {
  for (int i=-49;i<49;i++) {
    if (!test(testNumber,i)) {
      return false;
    }
  }
  return true;
}
```

Aber ob das besser zu lesen ist finde ich fragwürdig.


----------



## usrr (5. Dez 2011)

Ja, stimmt schon. Was soll man an Schleifen noch reduzieren. Ich arbeite erst mal den Testcode durch, dann wird es schon besser aussehen.


----------

