• 2018-08-02
ウズマスター戦記
ウズマスター戦記 https://www.uzumax.org/2018/08/python-unittestassert.html

Python unittestのassert一覧

Pythonには標準で「unittest」という名前そのままのユニットテストライブラリが搭載されています。
公式サイトはこちら。




しかし、公式サイトってやっぱりどこか見辛いですよね。情報多過ぎる。
自分の見たい所だけを一望出来るように整理することにしました。

アサートメソッド一覧

テストの結果が期待通りか判定する処理「アサート」ですが、アサートも色々用意されているようです。
これを一覧にまとめて整理します。

よく使うアサートメソッド

メソッド 確認事項 コメント
assertEqual(a, b) a == b aが期待値(expected)、bがテスト対象(acutual)
assertNotEqual(a, b) a != b
assertTrue(x) bool(x) が True
assertFalse(x) bool(x) が False
assertIs(a, b) a is b a と b がオブジェクトとして同じであること。値を見るだけのassertEqualとは違う。
assertIsNot(a, b) a is not b
assertIsNone(x) x が None(null)
assertIsNotNone(x) x が None(null) ではない
assertIn(a, b) a が b に含まれる 配列bの中にaが入っているかどうかの確認
assertNotIn(a, b) a が b に含まれない
assertIsInstance(a, b) a は bのインスタンスである bにはclassを定義して、aがそのクラスのオブジェクトであることを確認
assertNotIsInstance(a, b) a は bのインスタンスでない


より具体的なアサートを行うメソッド

メソッド 確認事項 コメント
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 の数が同じ a と b は配列で、そのcountが同じであることの確認。
順番は無視。

所感

これで見やすくなったりました。
ユニットテストは頑張れば assertEqual だけで全部乗り切れちゃうけど、それは見苦しいから多彩なメソッドを使って綺麗に書きたいものです。

0 件のコメント:

コメントを投稿

お気軽にコメント下さい。