rage / ohjelmointi-19

Ohjelmoinnin MOOC 2019, materiaali
https://ohjelmointi-19.mooc.fi/
18 stars 18 forks source link

Osa3_33 Joka toinen sana, testit puutteellisia #33

Closed uduntuntu closed 5 years ago

uduntuntu commented 5 years ago

Tehtävänannossa pyydetään toteuttamaan logiikka: "Kirjoita ohjelma, joka lukee käyttäjältä merkkijonoja. Kun käyttäjä syöttää merkkijonon, ohjelma tarkastelee syötettyä merkkijonoa. Mikäli syötetty merkkijono on tyhjä, ohjelma lopettaa käyttäjältä lukemisen ja ohjelman suoritus päättyy."

Testeissä testataan vain yksittäinen kokonainen merkkijono, ei tyhjää merkkijonoa eikä monen merkkijonon pilkkomista. Testit voivat siis mennä läpi, vaikka testattavassa koodissa syötteitä luettaisiin vain yksi.

reettaV commented 5 years ago

Kyllä testit katsovat usean merkkijonon pilkkomisen peräkkäin. Hiljattain neuvoin kanssaopiskelijaa, jonka testi ei mennyt läpi juurikin siksi että hänen koodinsa luki vain yhden syötteen.

uduntuntu commented 5 years ago

Luin testejä huonosti. Tämä avaamani issue perustui kanssaopiskelijani pasteen: https://tmc.mooc.fi/paste/awuFMjHkJI_DPb19wPPTOw#testResults

Tuon perusteella kuvittelin, että testi1 syöte olisi ollut "ohjelmointi on kivaa ihan totta" eikä todellisuudessa testattua syötettä "ohjelmointi on kivaa\nihan totta\n\n" (paste ei siis välitä rivinvaihtomerkkejä näköjään noista testeistä). Siksi tuo testi1:n tulostama virheilmoitus

Tulostuksesta puuttui merkkijono totta Tarkista ohjelman toiminta syötteellä: ohjelmointi on kivaa ihan totta

on hämmentävä. Copypastesin hänen koodinsa omaan NetBeans -sovellukseeni, ajoin testit ja sain paljon järkevämmän virheilmoituksen: image

Testi1 näyttää olevan se testi, joka testaa monen peräkkäisen merkkijonon syöttämisen ja sen, pilkkooko koodi ne oikein.

Jos pelkän tyhjän merkkijonon syöttäminen ihan aluksi räjäyttäisi koodin, ensimmäinen testi nappaisi sen kyllä. Case closed.