Instalace knihovny pytest
                        
                            Následující příkaz nainstaluje do aktivního
                            virtuálního prostředí knihovnu pytest,
                            kterou bueme používat na testování.
                        
(venv)$ pip install pytest
                    
                    
                        Co jsou testy?
                        
                            Testy jsou funkce, které zkontrolují, že náš
                            program funguje správně.
                            Výhoda psaní testů je ta, že je můžeme kdykoli
                            spustit a ověřit si, že jsme v programu
                            nic nerozbily.
                        
                        
                            Píšou se takhle (kód dej do souboru
                            test_secteni.py:
                        
def secti(a, b):
    return a + b
def test_secti():
    assert secti(1, 2) == 3
                        
                            Testy se spouští zadáním příkazu
                            py.test -v:
                        
$ py.test -v
============= test session starts =============
platform linux -- Python 3.4.0 -- py-1.4.26 -- pytest-2.5.2 -- /.../bin/python3.4
collected 1 items 
test_secteni.py:4: test_secti PASSED
========== 1 passed in 0.01 seconds ===========
                        
                            Tento příkaz projde všechny soubory v aktuálním
                            adresáři, jejichž jméno začíná na test_,
                            a zavolá v nich všechny funkce,
                            jejichž jméno začíná na test_,
                            a ověří, že nevyvolají žádnou výjimku.
                            Pokud výjimka nastane, dá nám to velice červeně
                            najevo, a přidá několik informací, které nám můžou
                            usnadnit opravu chyby.
                        
                    
                    
                        Testovací moduly
                        
                            Vytvoř si modul
                            test_piskvorky (tedy soubor
                            test_piskvorky.py), a do něj napiš:
                        
import piskvorky
def test_tah():
    pole = piskvorky.tah_pocitace('--------------------')
    assert len(pole) == 20
    assert pole.count('x') == 1
    assert pole.count('-') == 19
                        
                            Pak vedle něj (t.j. do stejného adresáře)
                            zkopíruj svůj program
                            piskvorky.py, ze kterého vyndej
                            kód, který není ve funkcích
                            (t.j. samotné volání funkce piskvorky1d).
                            Spuštěním py.test teď můžeme
                            otestovat funkci tah_pocitace!
                        
                    
                    
                        Spouštěcí moduly
                        
                            Teď vytvoř modul hra.py, který
                            bude obsahovat jen volání funkce piskvorky1d:
                        
import piskvorky
piskvorky.piskvorky1d()
                        
                            Tenhle modul nebudeme testovat, protože
                            nepřímo pustí funkci input(),
                            která potřebuje vstup od uživatele.
                            Budeme ho jen spouštět, když si budeme
                            chtít zahrát.
                        
                    
                    
                        Pozitivní a negativní testy
                        
                            Můžeme testovat i reakci programu na
                            neočekávaný vstup, například funkce
                            tah_pocitace by měla způsobit
                            chybu (třeba ValueError),
                            když je herní pole už plné.
                        
                        
                            Na to použijeme příkaz with
                            a funkci raises naimportovanou
                            z modulu pytest.
                            Jak tento příkaz přesně funguje se dozvíme později,
                            teď stačí říct, že tehnle příkaz
                            ověří že odsazený blok kódu
                            pod ním vyvolá danou výjimku:
                        
import pytest
import piskvorky
def test_tah_chyba():
    with pytest.raises(ValueError):
        piskvorky.tah_pocitace('oxoxoxoxoxoxoxoxoxox')
                        
                            Testy, které kontrolují reakci na špatný vstup,
                            se jmenují negativní testy.
                            Většinou kontrolují že nastane (správná) chyba,
                            Když náš kód pak použijeme ve větším programu,
                            můžeme si být jisty, že při špatném volání
                            dostaneme chyby – a srozumitelné chyby
                            se dobře opravují.