Zanurkuj w Pythonie/Programowanie funkcyjne: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Derbeth (dyskusja | edycje)
m popr. linków, noinclude
Beau (dyskusja | edycje)
sprzątanie kodu
Linia 1:
== Nurkujemy ==
 
W rozdziale 13 ("Testowanie") poznaliście filozofię testowania jednostkowego. Rozdział 14 ("Testowanie 2") pozwolił wam zaimplementować podstawowe testy jednostkowe w języku Python. Rozdział 15 ("Refaktoryzacja") uświadomił wam, że dzięki testom jednostkowym refaktoryzacja na wielką skalę staje się znacznie prostsza. W tym zaś rozdziale, choć wciąż będziemy bazować na wcześniejszych, przykładowych programach, skupimy się bardziej na zaawansowanych technikach stosowanych w języku Python, niż na samym testowaniu.
 
Linia 9 ⟶ 8:
Jeśli jeszcze tego nie zrobiliście, możecie pobrać ten oraz inne przykłady używane w tej książce.
 
<source lang="python">"""Regression testing framework
 
This module will search for scripts in the same directory named
XYZtest.py. Each such script should be a test suite that tests a
module through PyUnit. (As of Python 2.1, PyUnit is included in
the standard library as "unittest".) This script will aggregate all
found test suites into one big test suite and run them all at once.
"""
 
import sys, os, re, unittest
 
def regressionTest():
path = os.path.abspath(os.path.dirname(sys.argv[0]))
files = os.listdir(path)
test = re.compile("test\.py$", re.IGNORECASE)
files = filter(test.search, files)
filenameToModuleName = lambda f: os.path.splitext(f)[0]
moduleNames = map(filenameToModuleName, files)
modules = map(__import__, moduleNames)
load = unittest.defaultTestLoader.loadTestsFromModule
return unittest.TestSuite(map(load, modules))
 
if __name__ == "__main__":
unittest.main(defaultTest="regressionTest")</source>
Uruchomienie programu w tym samym katalogu, w którym znajdują się pozostałe przykładowe skrypty używane w tej książce, spowoduje wyszukanie wszystkich testów jednostkowych o nazwie <tt>moduletest.py</tt>, uruchomienie ich wszystkich jako jeden test, a następnie stwierdzenie, czy jako całość przeszły, czy nie.
Linia 82 ⟶ 81:
[[../Znajdowanie ścieżki|Znajdowanie ścieżki]]|
}}
{{Podświetl|py}}</noinclude>