Python(ユニットテスト)
ユニットテストとはプログラムを構成する比較的小さな単位(ユニット)が正しく動くのかを検証するためのテストです。
ユニットテストを記述するときは、unittestモジュールを取り込みます。
そして、ユニットテストのためのクラスを定義し、unittest.TestCaseを継承します。
このユニットテストを実行するには、コマンドラインからpythonコマンド、「-m(モジュール名)」のオプションを与え、unittestモジュールをスクリプトとして実行します。
そのコマンドに続けて、テストしたいスクリプト名を指定します。(テストスクリプトの名前は「test_***」のように「test_」からはじめる決まりになっています。)
今回は1つのファイルだけを指定していますが、ディレクトリに複数のファイルを配置しておいた場合、ディレクトリ名を指定して、複数のテストを実行することができます。 間違った場合は以下のように、どこで何が失敗したのかを確認することができます。
def setUp(self):
# 前処理(データベースの接続やインスタンス生成)
def tearDown(self):
# 後片付け(データベースの接続解除)
ユニットテストを記述するときは、unittestモジュールを取り込みます。
そして、ユニットテストのためのクラスを定義し、unittest.TestCaseを継承します。
import unittest
class Test(unittest.TestCase):
def test(self):
v=2+4
print("result",v)
# 結果を検証
self.assertEqual(v,6,"計算")
self.assertEqual(v,6,"計算")メソッドの引数はテストしたい値、想定する値、テストの説明を指定します。このユニットテストを実行するには、コマンドラインからpythonコマンド、「-m(モジュール名)」のオプションを与え、unittestモジュールをスクリプトとして実行します。
そのコマンドに続けて、テストしたいスクリプト名を指定します。(テストスクリプトの名前は「test_***」のように「test_」からはじめる決まりになっています。)
今回は1つのファイルだけを指定していますが、ディレクトリに複数のファイルを配置しておいた場合、ディレクトリ名を指定して、複数のテストを実行することができます。 間違った場合は以下のように、どこで何が失敗したのかを確認することができます。
テストの前準備と後片付け
テストユニットではテストを実行する前の前準備と後片付けのためのメソッドを定義することができます。def setUp(self):
# 前処理(データベースの接続やインスタンス生成)
def tearDown(self):
# 後片付け(データベースの接続解除)
値を検証するメソッド
メソッド名 | 確認する事柄 |
self.assertEqual(a,b) | a==b |
self.assertNotEqual(a,b) | a!=b |
self.assertTrue(a) | bool(a) is True |
self.assertFalse(a) | bool(a) is False |
self.assertIs(a,b) | a is b |
self.assertIsNot(a,b) | a is not b |
self.assertIsNone(a) | a is None |
self.assertIsNotNone(a) | a is not None |
self.assertIn(a,b) | a in b |
self.assertNotIn(a,b) | a not in b |
self.assertIsInstance(a,b) | isinstance(a,b) |
self.assertNotIsInstance(a,b) | not isinstance(a,b) |