【Python】かんたんassertテストをしてみる
こんにちは、葛の葉です。
assert
を使って簡単なテストをしてみましょう。
Python実行環境
Python 3.6.5
assertの使い方
assert 条件式, '間違ったときに出力される文字列'
assert
と条件式
の間は半角スペースなんですよ。Pythonでは珍しくパレンティスの括弧を使わないで引数を指定しているような気がします。
パレンティスの括弧はこの子 -> ()
こんな感じ
def arry_to_str(arry): ''' 引数で受け取ったarryを配列っぽい形でstrにして返します。 arry_to_str([i1,i2,i3,.....]) -> '["i1","i2","i3",.....]' 要素は""で囲われます。 ''' moji = '[' for i in arry: moji += '"{}"'.format(i) if i != arry[-1]: moji += ',' moji += ']' return moji arry = ['yum', 'npm', 'apt'] test_str = '["yum","npm","apt"]' assert test_str == arry_to_str(arry), 'まちがってるぜ'
これで実行しても何も返らない。成功しているので特に返り値がないみたい。失敗しているとエラー文が返され、実行されたプログラムはそこで終了する。
逆に言えばassert
が問題なく実行されれば、処理は続行されることになる。誤った処理などを弾くのに向いているかも知れない。
assertを失敗させる
17行目を以下のように変更する。
test_str = "['yum','npm','apt']"
各要素をダブルクォーテーション""
で囲っている部分をシングルクォーテーション''
に変更する。そうすると…
Traceback (most recent call last): File "d.py", line 19, in <module> assert test_str == arry_to_str(arry), 'まちがってるぜ' AssertionError: まちがってるぜ
このように期待通り失敗する(?)