13章テストとデバッグ
Pythonの動的な性質やデフォルトの静的型チェックの欠如は、祝福でもあり呪いでもあります†1([項目3]参照)。しかし、Pythonプログラマの大半は、Pythonの簡潔さとシンプルさによる生産性の向上を理由に使う価値があると述べています。一方で、Pythonプログラマの大半は、Pythonの実行時にとんでもないエラーに遭遇した経験を持っています。筆者が知っている最悪の経験は、モジュールの動的インポートの副作用が原因で、SyntaxErrorが本番環境で発生してサーバプロセスがクラッシュしたというものです([項目98]参照)。まさかの事態に見舞われたプログラマは、それ以来二度とPythonを使うのをやめてしまいました。
[†1] 訳注:見よ、私は今日、あなたがたの前に祝福と呪いを置く。もし、今日私が命じる、あなたがたの神、主の戒めに聞き従うならば祝福を、もし、あなたがたの神、主の戒めに聞き従わず、私が今日あなたがたに命じる道を外れ、あなたがたが知らなかった他の神々に従うならば、呪いを置く。(申命記 11章26‐28節、聖書協会共同訳)
しかし、どうして本番環境にデプロイする前に十分なテストを行わなかったのでしょうか。静的型付けがすべてではありません。どのようなプログラミング言語で書かれていようとも、必ずコードをテストしましょう。尤も、他のプログラミング言語に比べてPythonでは正しさを検証するためのテスト記述がより重要であると言えるでしょう。Pythonの動的な性質を活用すればコードのテストやデバッグも簡単にできます。
項目108 TestCaseでテストを実装する
Pythonでテストを記述する標準的な方法は、標準ライブラリのunittestを使う方法です。例として、次のようなユーティリティ関数に対するテストを考えます。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access