> For the complete documentation index, see [llms.txt](https://book.sovelluskontti.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.sovelluskontti.com/yksikkoetestaus/tdd-perusteet-103.md).

# TDD perusteet 103

Harjoituksen tavoitteena on oppia testivetoisen ohjelmoinnin perusteet. Tee tehtävä ohjeistuksen mukaan. Vältä katsomasta etukäteen osakokonaisuuksia.

## Esitiedot

* Git versionhallinnan perusteet.
* Jonkin yksikkötestauskirjaston perusteet.

## Vaihe 1

Avaa merkkijonolaskimen tehtävänanto: <https://osherove.com/tdd-kata-1>

Vältä lukemasta läpi tehtävänantoa vaan aloita ensimmäisestä vaiheesta. Jatka merkkijono tehtävän seuraavaan osioon.&#x20;

**Varaa tähän 60min.** Kun aika on täynnä, pidä lyhyt tauko ja siirry seuraavaan vaiheeseen tämän tehtäväkokonaisuuden osalta.

{% hint style="info" %}
Kaikkia kohtia ei ole tarkoitus saada valmiiksi, tee vain niin monta vaihetta alkuperäisestä tehtävästä kuin pystyt. Rajoite on vain käytettävissä oleva aika.
{% endhint %}

{% hint style="warning" %}
Tehtävässä tulee käyttää versiohallintaa siten, että tee **master** branchin ensimmäinen commit siten, että projektissa ei ole valmisteltu mitään. Sen jälkeen tee uusi branchi nimeltä **tdd-perusteet-103-vaihe-01**

Kun olet luonut yhden testin ja saanut sen läpi, tee tästä aina yksi commit. Tarkoituksena on historiasta nähdä miten ongelmaa ratkaistiin.
{% endhint %}

## Vaihe 2

Katso video: <https://www.youtube.com/watch?v=Li-omXFK9NE>

Kun olet katsonut videon, pidä pieni tauko ja siirry seuraavaan vaiheseen.

## Vaihe 3

Tee uudelleen vaihe 1, josta aloitit. Edelleen aikaraja on 60min.&#x20;

Aloita tämä vaihe ns. puhtaalta pöydältä vaan tee uusi branchi.

Kun aikaraja on täynnä, lopeta.

Miten videon jälkeen se muutti tapaasi ratkaista tehtävä?

{% hint style="warning" %}
Nimeä branchi seuraavasti: **tdd-perusteet-103-vaihe-03**
{% endhint %}
