Exemplo n.º 1
0
 public void testi(String syote, String[] oikeat) {
   io.setSysIn(syote.replaceAll(", ", "\n") + "\n");
   ToistuvaNimi.main(new String[0]);
   String lisa = ", kun syötteet ovat: " + syote;
   String tulostus = io.getSysOut();
   assertTrue("Ohjelmasi ei tulosta mitään" + lisa, tulostus.length() > 0);
   String[] rivit = tulostus.split("\n");
   assertTrue("Ohjelmasi tulostaa väärän määrän rivejä" + lisa, rivit.length == oikeat.length);
   for (int i = 0; i < oikeat.length; i++) {
     assertTrue("Ohjelmasi tulostus on väärä" + lisa, kelpaa(rivit[i], oikeat[i]));
   }
 }
  private void tarkista(int[] syoteLuvut) {
    int oldOut = io.getSysOut().length();
    String syote = "";
    int summa = 0;
    for (int luku : syoteLuvut) {
      summa += luku;
      syote += luku + "\n";
    }

    io.setSysIn(syote);
    callMain(SumOfManyNumbers.class);
    String out = io.getSysOut().substring(oldOut);

    int vastaus = otaLukuLopusta(out);

    syote = syote.replaceAll("\n", " ").trim();
    syote = syote.replaceAll(" ", " + ").trim();
    String virheIlm =
        "sum of " + syote + " should be " + summa + ", you printed \"" + vastaus + "\"";
    assertTrue("you should print something", out.length() > 0);
    assertEquals(virheIlm, summa, vastaus);
  }