Python

Python Bottleのソースを読む ユニットテスト編

投稿日:2016年12月5日 更新日:


Python Bottleのソースを読む テスト編

前回までで一通りメインの機能は確認できました。ではいよいよコード追加してプルリクを投げましょうというところですが、テストは?ということでユニットテストとカバレッジ状況をチェックしてみます。また自作アプリに対してのテスト方法もチェックしてみます。

Bottleのユニットテストとカバレッジ状況

GitHub上のBottleをクローンすると直下にtestディレクトリがあります。ここにずらーっとテストがありますが、よくよく見てみるとtestall.pyという全実行のエントリポイントが用意されているのでそれを実行します。

でました。

20160623211937

bottle.pyだけを見てみると

76%

しっかりテストが書かれてるのがわかります。

そしてhtmlをチェック

20160623211742

コードのカバレッジ状況が一目瞭然。あとは足りないとこテストしたり自分で処理追加してテストしたり。これでいろいろ安心。

BottleでつくったWebアプリのテスト方法

せっかくなのでWebアプリのテスト方法も見てみます。これは公式ドキュメントにしっかり書かれているのでそこをみればだいたい分かると思います。

noseインストール

テスト対象コード

テストコード
単純にindex()を実行して結果をassertする

テスト実行

上記は直接関数をテストする方法ですがwebtestを使ってwebベースでアクセスしてテストする方法もあります。ただこの方法をやってみたところ明示的 app = Bottle()を宣言しないとうまく実行できませんでした。ここら辺はもう少しwebtestの使い方がわかればなんとかなるかもしれません。

webtestインストール

テスト対象コード

テストコード
公式ドキュメントではログイン・ログアウトのテストが書かれてましたがここでは省略

テスト実行

これでいろいろ安心


-Python
-,

執筆者:

関連記事

FlaskをBottleと比較した雑感

以前Bottleのソースをチェックしてみた流れでFlaskも見てみた。結論から言うとBottleと大して変わらん。もちろんFlaskのほうがコード量が多く多少リッチではあるもののざっくり機能ベースで言 …

Python Bottleのソースを読む プラグイン編

Pythonの軽量WebフレームワークBottleのソースを読む プラグイン編 Bottleを触ってみると通常のWebフレームワークには用意されているであろう機能がなかったりします。これはマイクロフレ …

Python Bottleのソースを読む 起動編

Pythonの軽量WebフレームワークBottleのソースを読む 起動編 Bottleとは Bottle is a fast, simple and lightweight WSGI micro we …

Python Bottleのソースを読む ルータ編

Pythonの軽量WebフレームワークBottleのソースを読む ルータ編   Class Hierarchy ここの部分   Bottleのルータについて bottleのルータは特に継承関係はなくR …

Python Bottleのソースを読む リクエスト・レスポンス編

Pythonの軽量WebフレームワークBottleのソースを読む リクエスト・レスポンス編   Class Hierarchy ここの部分 リクエスト受付からレスポンスまで 前回、サーバの立ち上げ時に …