Pythonのunittest
フレームワークは、JUnitに触発されたもので、他の言語の主要なユニットテストフレームワークと同じ風味があります。テストの自動化、テストのセットアップとシャットダウンコードの共有、テストの集約、テストの報告フレームワークからのテストの独立性をサポートしています。
以下に、Pythonのunittest
を使用して3つの文字列メソッドをテストする短いスクリプトを示します。
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
このスクリプトは、'foo'.upper()
が'FOO'
を返すこと、'FOO'.isupper()
がTrue
を返し、'Foo'.isupper()
がFalse
を返すこと、そして'hello world'.split()
が['hello', 'world']
を返すことを確認します。
テストを実行するためには、python -m unittest discover
を使用します。これは、テストを発見して実行するためのGUIツールで、ユニットテストに新しい人々のための使いやすさを意図しています。
しかし、テストコードの実行にはいくつかの注意点があります。例えば、ファイル名やメソッド名はtest
から始まらなければならないというルールがあります。また、テストコードが実行できない場合や、importがうまくいかない場合など、Pythonの挙動の理解が問題となることもあります。
以上の情報を踏まえて、Pythonとunittest
を使用したテストのパスについて理解を深め、より効果的なテストコードを書くことができるでしょう。