Ohjelmistokehityksen menetelmät
  • Ohjelmistokehityksen menetelmät ja käytänteet
  • Tavoitteet
  • Työkalut
  • Toimeksiannot
    • Projektityön rajaukset ja toimeksiannot
    • Palkanlaskenta
    • Kilometrikorvaus
    • Laskutus
    • Laskun perintä
  • Ketterä ohjelmistokehitys
    • Agile esimerkki, sykli
    • Agile, Tuotteen tehtävälista
    • Agile, Käyttäjätarina ja käyttötapaus
    • Agile muu materiaali ja lähteitä
    • Agile termit (scrum)
  • Versionhallinta
    • Sanasto Git
    • Opas Gitin perusteisiin
    • Git perusteet 101
    • Git perusteet 102
    • Git perusteet 103
    • Git perusteet 104
    • Git perusteet 105
    • Git perusteet 106
    • Git perusteet 107
    • Git perusteet 108
    • Git muu materiaali ja lähteet
  • Yksikkötestaus
    • Ohjelmistotestauksen periaateet
    • NUnit lisääminen VS2019
    • NUnit perusteet 101
    • NUnit perusteet 102
    • NUnit perusteet 103
    • NUnit perusteet 104
    • NUnit perusteet 105
    • NUnit perusteet 106
    • NUnit muu materiaali ja lähteitä
    • TDD perusteet 101
    • TDD perusteet 102
    • TDD perusteet 103
    • TDD muu materiaali ja lähteitä
  • UML mallinnuskieli
    • Johdanto
  • Relaatiotietokannat
    • Johdanto
    • Sanasto
    • Mysql perusteet -videosarja
    • Pää- ja viiteavaimet
    • ER kaaviot
    • Viite-eheys ja ACID
    • SQL JOIN -lauseke
    • Normalisointi
    • SQL View
    • Tehtävä 001 Tietokannan suunnittelu
    • Indeksointi
      • Hitaat hakukyselyt
  • SQL harjoitukset ja esimerkit
    • Esimerkkitietokannan käyttöönotto
    • Mysql perusteet 101
    • Mysql perusteet 102
      • mysql-perusteet-102-vastaukset
    • Mysql perusteet 103
      • mysql-perusteet-103-vastaukset
    • Mysql perusteet 104
      • mysql-perusteet-104-vastaukset
    • Mysql perusteet 105
      • mysql-perusteet-105-vastaukset
    • Mysql perusteet 106
      • mysql-perusteet-106-vastaukset
    • SQL hakukyselyjä (VANHAT)
    • SQL harjoitukset syksy 2021
      • Vastaukset SQL harjoitukset syksy 2021
  • Miten yrittäjänä voin hyötyä ohjelmistokehityksen ostamisesta?
    • TL;DR
  • Toimeksiannot (2019/01)
    • Toimeksianto 2019/01
    • Käytänteet ja menetelmät
    • Konsoliohjelman refaktorointia
  • SCRUM harjoitustyö (2020/01)
    • Harjoitustyön sisältö
    • Harjoitustyö: Matkalasku
  • Toimeksiannot (2019/02)
    • Toimeksianto 2019/02
  • Toimeksiannot (2018/01)
    • Projekti 2018/01
    • Projekti 2018/01 Perjantaille 14.9
    • Projekti 2018/01 Käyttötapauksesta työtehtäviin
    • Projekti 2018/01 Ohjelmoinnin aloittaminen
    • Projekti 2018/01 TDD esimerkki
  • Harjoitteet (keskeneräiset)
    • Käyttäjätarinat
    • Pariohjelmointi
    • Versionhallinta
    • Testivetoinen kehitys
    • Jatkuva integraatio
    • Inkrementaalinen dokumentointi
Powered by GitBook
On this page
  • Merkkijono laskin -ohjelman toteuttaminen yksikkötestein
  • Tavoite
  • Laskimen määritys
  • Esimerkkejä syötteistä
  1. Yksikkötestaus

NUnit perusteet 105

PreviousNUnit perusteet 104NextNUnit perusteet 106

Last updated 5 years ago

Merkkijono laskin -ohjelman toteuttaminen yksikkötestein

Seuraava harjoitus ei ole kirjoittajan oma vaan perustuu Roy Osheroven String Calculator harjoitukseen.

Harjoitusta on hieman muutettu alkuperäisestä.

Vältä katsomasta esimerkkejä vaan keskity seuraavan tehtävänannon ohjeistukseen ja yritä ratkaista se ensin itse niin pitkälle kuin pääset. Harjoituksen tavoitteena on luoda yksinkertainen ohjelma, joka on tarkoin määritelty ja sen oikea toiminnallisuus tulee todistaa testien avulla.

Tavoite

Oppia hyödyntämään yksikkötestausta sekä testivetoista kehitystä.

Pyri kirjoittamaan seuraava testi aina valmiiksi ja sitten vasta sen läpäisevä tuotantokoodi.

Laskimen määritys

Tee yksi kohta kerrallaan. Vältä etenemästä seuraavaan ennen ratkaisua ja katsomatta liikaa muita vaatimuksia.

Kokeile myös ensin katsomatta esimerkkejä syötteistä mutta voit käyttää niitä sitten myös apuna.

Ohjelmassa on MerkkijonoLaskin niminen luokka. Luokassa on yksi metodi nimeltään Laske. Metodi palauttaa numeroarvon. Laske -metodi ottaa parametrikseen merkkijonon (string).

Luo ohjelma alla mainittujen vaatimuksiin perustuen siten, että sinulla on vähintään yksi testi jokaiselle vaatimukselle. Kun olet kirjoittanut testin, voit vielä tehdä ohjelmasta konsoliohjelman.

  • [ ] Tyhjä merkkinojo palauttaa nollan.

  • [ ] Yksi numero, laskin palauttaa annetun numeron arvon..

  • [ ] Kaksi numeroa, pilkulla erotettuna, palauttaa lukujen summan.

  • [ ] Toteuta ominaisuus, että numeroita voidaan antaa pilkulla erotettuna rajoittamaton määrä ja laskin palauttaa lukujen summan.

  • [ ] Toteuta ominaisuus, että pilkkujen tilalla voidaan käyttää newline merkintää lukujen erottimena pilkkujen sijaan. (newline = \n)

    • Esimerkiksi arvo "1\n2,3" palauttaisi summan 6.

    • Ei tarvitse tukea muotoa, jossa erottimet seuraavat toisiaan. Esimerkiksi "1,\n". Voidaan olettaa, ettei tällaisia syötteitä anneta.

  • [ ] Negatiivinen luku, pienempi kuin nolla, aiheuttaa virheen. (Exception)

  • [ ] Luvut, jotka ovat yli 1000, ei huomioida yhteenlaskussa.

Esimerkkejä syötteistä

Laske metodin parametri

Metodin palauttama arvo

""

0

"0"

0

"1"

1

"2"

2

"1,1"

2

"3,4"

7

"2,7,4"

13

"5,5,5,4"

19

"1\n2,3"

6

"-1"

throw exception("negatiivisia lukuja ei sallita)

"3,-1"

throw exception("negatiivisia lukuja ei sallita)

"3,1001"

3

http://osherove.com/tdd-kata-1/