nosetests を使ってをうるう年か判定する関数を実装してみた - uokadaの日記
前回のエントリの続き。
前回のコードはyearに数字しか入ってこない前提でコード書いてました。
そんなところに数字以外のデータ型を渡すと当然例外を発生させますよね。
それも確認しておきたいですよね。
じゃあ、テスト書きましょう(提案)。
例外を発生させるテストコードは下のようになります。
@raises(TypeError, AssertionError) def test_is_leap_05(self): """leap.is_leap の異常系テスト 01 """ result = leap.is_leap("hoge")
raises()の引数に捕まえたい例外を並べます。
これで再度テストを実行。
% nosetests -v --with-cover --cover-package=leap test_leap.py leap.is_leap の正常系テスト 01 ... ok leap.is_leap の正常系テスト 02 ... ok leap.is_leap の正常系テスト 03 ... ok leap.is_leap の正常系テスト 04 ... ok leap.is_leap の異常系テスト 01 ... ok <= 今回追加したテスト Name Stmts Miss Cover Missing ------------------------------------- leap 9 0 100% ---------------------------------------------------------------------- Ran 5 tests in 0.003s OK
ok出てるのでちゃんと例外を捕まえられたみたいです。
こんな風に例外が発生するようなテストケースもnoseなら簡単に書けますね。