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); }
@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]); }