オタクくん「ギャル先輩、単体テストってなんですか?」

2024/05/18に公開

オタクくん「うーん、どうしよう...。これで合ってるのかな...。」

ギャル先輩「何悩んでんの、オタクくん?またなんか難しいこと考えてるんじゃん?」

オタクくん「えっと、ギャル先輩。実は、コードを書いた後にどうやって動作確認をするかで困ってて...。」

ギャル先輩「あーしが教えてあげるよ!てーか、オタクくんってパソコンに詳しそうなのに、そんなのもわからないの?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