📝
unittest
公式
基本形
import unittest
import test_suru_module
class TestClass(unittest.TestCase):
def setUp(self):
# 各テスト共通の処理
self.instance = test_suru_module.a_constructor()
def test_sono_ichi(self):
# いろいろなassert
self.assertEqual(inserted_child_ids, child_id)
self.assertTrue(instance.is_valid)
def test_reigai(self):
# 例外が出ることをテストする
self.assertRaises(ZeroDivisionError, test_suru_module.wari_zan, (3, 0))
# これでもOK
with self.assertRaises(ZeroDivisionError):
test_suru_module.wari_zan(3, 0)
if __name__ == '__main__':
unittest.main()
いろいろなassertion
assertTrue(expr, msg=None)
assertFalse(expr, msg=None)
# 等しいかどうか。型ごとに専用Methodが呼び出されています
assertEqual(first, second, msg=None)
assertNotEqual(first, second, msg=None)
# objectが同一かどうか
assertIs(first, second, msg=None)
assertIsNot(first, second, msg=None)
# Noneかどうか
assertIsNone(expr, msg=None)
assertIsNotNone(expr, msg=None)
# 含まれるかどうか
assertIn(member, container, msg=None)
assertNotIn(member, container, msg=None)
# instanceのtypeを確認
assertIsInstance(obj, cls, msg=None)
assertNotIsInstance(obj, cls, msg=None)
# 閾値付きでだいたい等しいか等しくないか。浮動小数点とかに
assertAlmostEqual(first, second, places=7, msg=None, delta=None)
assertNotAlmostEqual(first, second, places=7, msg=None, delta=None)
self.assertIn('py', filename)
# 大小を比較
assertGreater(first, second, msg=None)
assertGreaterEqual(first, second, msg=None)
assertLess(first, second, msg=None)
assertLessEqual(first, second, msg=None)
# regex の検索が text とマッチする (またはマッチしない) ことをテストします。
assertRegex(text, regex, msg=None)
assertNotRegex(text, regex, msg=None)
# 出てくる例外
assertRaises(exception, callable, *args, **kwds)
assertRaises(exception, *, msg=None)
# assertRaises() と同等ですが、例外の文字列表現が regex にマッチすることもテストします。
assertRaisesRegex(exception, regex, callable, *args, **kwds)
assertRaisesRegex(exception, regex, *, msg=None)
assertWarns(warning, callable, *args, **kwds)
assertWarns(warning, *, msg=None)
# assertWarns() と同等ですが、警告メッセージが regex にマッチすることもテストします。
assertWarnsRegex(warning, regex, callable, *args, **kwds)
assertWarnsRegex(warning, regex, *, msg=None)
assertEqualが呼び出しているMethods
assertDictEqual(a, b)
assertListEqual(first, second, msg=None)
assertTupleEqual(first, second, msg=None)
assertSetEqual(first, second, msg=None)
assertDictEqual(first, second, msg=None)
assertMultiLineEqual(first, second, msg=None) # assertEqual()がstringを比較するときに自動的に使用
assertSequenceEqual(first, second, msg=None, seq_type=None)
Discussion