Kuzunoha-NEのブログ

プログラミングなどの勉強をしてます

【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: まちがってるぜ

このように期待通り失敗する(?)