ユニットテスト練習録#0

ユニットテスト練習録#0

pytestの方法を勉強中です。
最近ゲームを作っていて、今までは直接出力を確認したりprint出力しながらやってきて、なんとかできたんですが、どんどん進みが遅くなっていることに気づきました。
関係するメソッドが増えてきて、どこがエラーを起こしているのかわからなくて延々とどこが問題かチェックする時間が増えたんですね。

新しい機能を追加するにも、覚悟が必要になってきました。最初は気軽だったんですが。
そして恐ろしいことに、全部で600行くらいでコレなので、これからを考えると絶対ムリ。
ということで、pythonのテスト環境、pytestを勉強しはじめました。

むずかしい

簡単だろーと舐めてかかりましたが、これがよくわからない!
テストもプログラムを書くことである、ということにちょっと驚きました。printデバッグに毛が生えたようなことをやればイイんじゃないかとイメージしてました(汗)。

むずかしい。
なぜむずかしいか…

  • pytestの使用方法が今まで体験したことない種類です。私はあまりコマンドのソフトを使ったことがありません。
  • やれることが多すぎて、どれを使ったらいいのかわからない。テストもいくつか種類があって、どう違うの?と迷います。
  • どうテストしたら機能しているか証明できるのか、わからない。pytestというよりも、テスト自体の概念がわからないのです。

つまり…テストという概念と、pytestというソフト自体の使い方を同時に学んでいるので、難しく感じます。

意味がわからず書く期間は必要

テスト ∋ pytest
ですが、分離して学ぶのも不可能に思えます。

具体的にわからないと抽象概念を理解することはむずかしいです。
ですが、抽象がわからないとなぜ具体的な何かをやっているのか、何の意味があるかわかりません。

小学1年生が文字を習うときを考えてみます。
文字を書く ∋ 鉛筆の使い方

鉛筆の使い方を知らずに文字は書けません。
なのでまず鉛筆の使い方を習得します。意味不明な「あ」という模様を何度も書くことになるでしょう。
なぜやるのかはよくわからないけれど、大人たちがいうから、とにかく「あ」の形を書く。
それで、最初はガタガタだった文字がまっすぐになったりと、判読できる特徴を備えるようになってきます。

そうしていると「あいうえお」が書けるようになって、文字を書く、という目標を達成します。
最初の「あいうえお」で鉛筆の使い方は習得している、あとの行はあいうえおに比べてすばやく習得します。

…何が言いたいのかわからなくなってきました。
要するに、「まったく未知の概念に出会ったとき、わけがわからないが手を動かさないといけない期間は必要だ」だということです。
テストについて今よくわからないが、今までのプログラム言語と同じように、わけもわからず書いて学習することは間違っていないハズだ、と思って習得中です。



貴島 大悟
WEB開発者