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]));
   }
 }
  /*
   * osa 6
   */
  @Points("77.6")
  @Test
  public void manyCards() {
    Main.main(new String[0]);
    String[] rivit = io.getSysOut().split("\n");
    assertTrue("Et tulosta mitään", rivit.length > 0);
    for (String rivi : rivit) {
      assertTrue(
          "Print card info and owner name of card at the same line."
              + "Remove possible extra code from main()",
          rivi.toLowerCase().contains("pek") || rivi.toLowerCase().contains("bri"));
      assertFalse(
          "Print only one card info per line. Now you print line " + rivi,
          rivi.toLowerCase().contains("pek") && rivi.toLowerCase().contains("bri"));
    }
    ArrayList<String> pekka = new ArrayList<String>();
    ArrayList<String> matti = new ArrayList<String>();
    for (String rivi : rivit) {
      if (rivi.toLowerCase().contains("bri")) {
        matti.add(rivi);
      } else if (rivi.toLowerCase().contains("pek")) {
        pekka.add(rivi);
      }
    }

    tarkastaMatinRivit(matti);
    tarkastaPekanRivit(pekka);
  }
  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);
  }
示例#4
0
  @Test
  public void test() {
    HeiMaailma.main(new String[0]);
    String out = io.getSysOut();
    assertTrue("Et tulostanut mitään!", out.length() > 0);

    String[] lines = out.split("\n");

    assertEquals(
        "Ohjelmasi pitäisi tulostaa 2 riviä, eli siinä pitäisi olla 2 System.out.println()-komentoa.",
        oikein.length,
        lines.length);

    assertEquals("Ensimmäinen rivi on väärin", oikein[0], lines[0]);
    assertEquals("Toinen rivi on väärin", oikein[1], lines[1]);
  }