オタクくん「ギャル先輩、単体テストってなんですか?」
オタクくん「うーん、どうしよう...。これで合ってるのかな...。」
ギャル先輩「何悩んでんの、オタクくん?またなんか難しいこと考えてるんじゃん?」
オタクくん「えっと、ギャル先輩。実は、コードを書いた後にどうやって動作確認をするかで困ってて...。」
ギャル先輩「あーしが教えてあげるよ!てーか、オタクくんってパソコンに詳しそうなのに、そんなのもわからないの?www。」
オタクくん「ごめんね、まだまだ勉強中だから...。単体テストって聞いたことあるんだけど、どうやってやるのか全然わからなくて。」
単体テストとは?
ギャル先輩「単体テストってのは、コードの一部、特に関数とかメソッドを単独でテストすることだよ。書いたコードがちゃんと動くかを確認するのに便利なんだ。」
オタクくん「ふむふむ。具体的にはどうやってやるの?」
ギャル先輩「例えば、Pythonで簡単な関数をテストするとするじゃん。まずはテストしたい関数を書くよ。」
オタクくん「じゃあ、add
関数を例にしてみるね。」
def add(a, b):
return a + b
ギャル先輩「おっけー。それで、その関数が正しく動くかを確認するためにテストを書くの。」
オタクくん「どうやって書けばいいの?」
ギャル先輩「Pythonでは、unittest
っていうモジュールを使うと便利だよ。こんな感じで書くの。」
import unittest
class TestAddFunction(unittest.TestCase):
def test_add(self):
self.assertEqual(add(1, 2), 3)
self.assertEqual(add(-1, 1), 0)
self.assertEqual(add(0, 0), 0)
if __name__ == '__main__':
unittest.main()
オタクくん「なるほど、assertEqual
で期待する結果を指定してるんだね。」
ギャル先輩「そうそう。テストが通ると、全部うまくいってるってこと。逆に失敗すると、どこが問題か教えてくれるんだ。」
テストを実行する
オタクくん「でも、これをどうやって実行するの?」
ギャル先輩「Pythonなら、コマンドラインで python -m unittest test_script.py
ってやればいいんだよ。」
オタクくん「えっと...試してみるね。」
ギャル先輩「ちょっと見せてみな。あーしがチェックしてあげるからさ。」
オタクくん「はい、実行してみます...。おお、全部テストが通りました!」
ギャル先輩「やるじゃん、オタクくん!これで単体テストの基本はわかったね。」
単体テストの重要性
オタクくん「ところで、どうして単体テストがそんなに重要なの?」
ギャル先輩「単体テストをやることで、バグを早い段階で見つけられるし、コードの修正が簡単になるんだよ。大規模なプロジェクトになるほど効果的なんだ。」
オタクくん「確かに、後でバグを見つけるより、早めに直せたほうがいいよね。」
ギャル先輩「そうそう。それに、テストがあると新しい機能を追加する時も安心だしね。」
オタクくん「うん、わかったよ。ギャル先輩、ありがとう!単体テストのやり方が少し分かった気がする。」
ギャル先輩「いいってことよ。でも、もっと勉強しなきゃダメだからね。あーしがいつでも教えてあげるからさ。」
オタクくん「ありがとう、ギャル先輩。本当に助かったよ。」
ギャル先輩「ふふ、あーしに感謝しなよ。じゃ、次はもっと難しいこと教えてあげるから、頑張ってね!」
オタクくん「はい、頑張ります!」
Discussion