python

Python unittest assertの使い方を極める

 

Pythonに限らず、単体テストで避けて通れないのがassertXXXの使い方です。

assertの使い方を知れば、単体テストの書き方がわかります。

assertの種類

assertの種類を整理しました。

また、使う頻度も合わせて整理しました。

メソッド 確認事項 使う頻度
assertEqual(a, b) a == b
assertNotEqual(a, b) a != b
assertTrue(x) bool(x) is True
assertFalse(x) bool(x) is False
assertIs(a, b) a is b
assertIsNot(a, b) a is not b
assertIsNone(x) x is None
assertIsNotNone(x) x is not None
assertIn(a ,b) a in b
assertNotIn(a ,b) a not in b
assertIsInstance(a ,b) isinstance(a, b)
assertNotIsInstance(a ,b) not isinstance(a, b)
assertRaises(exc, fun, *args, **kwds) fun(*args, **kwds) が exc を送出する
assertRaisesRegex(exc, r, fun, *args, **kwds) fun(*args, **kwds) が exc を送出してメッセージが正規表現 r とマッチする
assertWarns(warn, fun, *args, **kwds) fun(*args, **kwds) が warn を送出する
assertWarnsRegex(warn, r, fun, *args, **kwds) fun(*args, **kwds) が warn を送出してメッセージが正規表現 r とマッチする
assertLogs(logger, level) with ブロックが 最低 level で logger を使用する
assertAlmostEqual(a ,b) round(a-b, 7) == 0
assertNotAlmostEqual(a ,b) round(a-b, 7) != 0
assertGreater(a ,b) a > b
assertGreaterEqual(a ,b) a >= b
assertLess(a ,b) a < b
assertLessEqual(a ,b) a <= b
assertRegex(s, r) r.search(s)
assertNotRegex(s, r) not r.search(s)
assertCountEqual(a ,b) a と b に、順番によらず同じ要素が同じ数だけある
ABOUT ME
ロッピー
コンサルタントから2018年にエンジニアに転向。年収400万円のサラリーマンエンジニアから、半年で月収100万円を稼ぐエンジニアになった。 Python、Golangなど単価の高い言語を得意とする。