2017/02/03 JaSST’17 Tokyo
RSpec の入門とその一歩先へ がとてもよい記事だったので、 Python で写経させてもらいました。 https://github.com/methane/pytest-tut Ruby コミュニティと Python コミュニティの考え方の違いも見えて面白いと思います。 環境は Python 3.3 で、実行には py.test コマンドを使いましたが、 py.test の機能は特に使っていないので nose でもなんでも大丈夫です。 ファイルの作成 まずは空の実装とテストを作ります。 message_filter.py class MessageFilter: pass message_filter_test.py 最初のテストを書く py.test は .should といったメソッドを勝手に生やしたりはしません。普通に assert 文を書きましょう。 --- a/messege
Explore ScreenShots SuccessStories Press FAQ HowToHelp Support (and Paid Support) Utilities Security Licensing Plugins StatisticsCollection Documentation Buildbot Tutorial Buildbot Manual (latest release - see other versions) NineMigrationGuide -- help for migrating from 0.8.x to 0.9.x HelpfulPages Development and Administrivia Development (@ GitHub) Nine - work on the next generation GSoC and
最近、Mockライブラリ http://www.voidspace.org.uk/python/mock/ を使ってみたのでメモ。 このライブラリは、その性質上、動的にメソッドや属性を作成するケースが多く、普通のPythonライブラリのようにイントロスペクションに頼って使い方を調べるのは難しい。本気で使うならまじめにドキュメントを読み込む必要がある。 関数の置き換え テスト中に呼び出される関数をMockで置き換える例。ここでは、関数 myapp.utils.func1() を置き換える。 from mock import Mock import myapp.utils # myapp.utils.func1 を、常に100を返す関数に置き換える myapp.utils.func1 = Mock(return_value=100) 戻り値が定数でない場合は、Mock()にside_effec
pytest で初めてテストを書いてみました。 今度こそ帰るー、py.test を使って初めてテストを書いた、評判通りすごく良い 2012-02-07 19:48:52 via TweetDeck @t2y noseと比べた感想とか聴きたいです。 2012-02-07 19:55:04 via web to @t2y @methane @t2y テストがこけたときまともなレポートをはくのがpy.testのいいところ 2012-02-07 19:56:34 via twicca to @methane nose と比べて、データ駆動テスト *1 *2 の違いが大きかったのでまとめてみます。 準備 以下の素数判定を行うテスト対象関数があるとします。 PRIME = {2: True, 3: True, 4: False, 5: True, 6: False, 7: True} def is_p
[ インターネット ] dodobonのWiki Java, Perl, Python, MySQLに関する学習メモ. 編集 履歴 添付 設定 新規ページ作成 メニュー Wiki内検索 最近更新したページ 2007-09-17 PostgreSQL導入メモ PostgreSQL FrontPage 2007-09-03 Oracle SQL Plus 2007-09-02 Oracle グループ関数 Oracle Oracle SELECT時の注意事項 Oracle データディクショナリ Oracle シノニム Oracle インデクス Oracle シーケンス Oracle View 2007-08-26 Oracle 表の作成と管理 Oracle 集合演算子 2007-06-27 システム開発_memo 2007-03-22 Oracle 表領域 Oracle SHUTDOWN 200
pythonのunittestのやり方をよく忘れるのでメモ&まとめ。 テストケースを作る import HogeModule # テスト対象のモジュール import unittest class testHogeModule(unittest.TestCase): # HogeModuleテストケース def test_foo(self): # foo関数のテストメソッド self.assertEquals(HogeModule.foo(1, 2), 3) def test_bar(self): # bar関数のテストメソッド ・・・・ テストメソッドは、prefixにtestを付ける。そうするとフレームワーク側で勝手に呼び出してくれる。テストの際、初期化や終了処理などが必要な場合、それぞれsetUpメソッドとtearDownメソッドで行う。 テストスイートを作る テストケースを書いたら
pythonのモックとしてminimockというライブラリがある。 日本語のドキュメント・ブログが見当たらないので使い方をここに書いておく。 minimockを構成するモジュール mock関数 -- モックを当てる。 restore関数 -- 当てたモックを解除する。 Mockクラス -- mockより詳細にモックを当てるために使うオブジェクト。 mock関数とrestore関数でモックを当てる・解除するというのはわかりやすい。 しかし、複雑なケースではMockオブジェクトを使う必要があるのでここで説明する。 あと、minimockを使う上ではまりやすい点を書く。 基本的な使い方 minimockの基本は モックに差し替えるモジュールをインポートする。 mock関数を呼ぶ。或いはMockインスタンスを代入する。 使い終わったらrestoreで戻す。 である。 例えば、以下のphilosop
Agile2008でもらったゴムバンドを未だに手首につけている。確かBob Martinだったと思うが、テスト駆動開発と「Clean Code」の関係について熱く語っていた年だ。 メソッドは短く。 メソッドが実現することは一つ。 あるメソッドのテストに色々と条件を設定しているのなら、それはClean Codeではない。 だが我々はその基本を簡単に忘れてしまう。色々とテストのための道具が揃ってきたせいもあろう。基本を忘れて一つのメソッドに色々と詰め込みすぎるとテストが大変になる。Mockがあっても、だ。Fixture使うのはさらに大変だし、Seleniumとかで入力から何から条件を与えるのはもっと面倒。そしておそらく抜けが発生する。 最近、内職でPython使ったアプリを組んでいるのだが、今回は上記「基本」を徹底するようにしている。例えばこんなコードがある。 def nearby(reque
少し分からなかったので、備忘録として書いておく。 pythonでsrcとtestフォルダを分けていた場合、上手くテストが出来なかったので、色々調べてみた。 フォルダ構成 私が作ったフォルダは下記のような構成。 ./Sample |--/src ・・・実行用スクリプト | |--/test ・・・テストスクリプト | |--setup.pysetup.pyはJavaでいうと、build.xmlやpom.xmlみたいなもの。 python setup.py testとコマンドを打つと、テストを実行してくれます。 setup.pyを使った簡単なテスト例 まず、フォルダ・ソース構成は下記の通り ./Sample |--/src | |--__init__.py | |--sample.py |--/test | |--sample_test.py |--setup.py __init__.py f
今年読んだ小説ベスト10(ミステリ編) さて、それでは非ミステリ編に引き続いて今回はミステリ編です。今年のミステリ界の最大のトピックといえばなんといっても飛鳥部勝則復活。数年前から新作短編や文庫化などの兆しはありましたが、ついに出た新作大長編!さらに来年以降もハイペースな活動が予告されて…
Python, nose | 18:46 | PHP × SimpleTest と平行して、Pythonのテストパッケージの一つの nose も試してみる。 参考サイトhttp://somethingaboutorange.com/mrl/projects/nose/0.11.1/index.html 第1章 複数通貨のMoneyオブジェクト sample1.py #!/usr/bin/env python2.5 #-*- coding: utf-8 -*- class Dollar(): def __init__(self, amount=0): self.amount = amount def times(self, multiplier): self.amount *= multiplier testDollar.py #!/usr/bin/envpython2.5 #-*- cod
Google App Engine SDK for Python には、単体テスト用に各サービスのスタブが提供されています。このスタブと unittest を使えば、ローカル環境で GAE 用アプリの単体テストが可能です。 GAE/Python で unittest を使って、単体テストを行うサンプルは次の通り。 #!/usr/bin/env python #encoding: utf-8 import os import sys # 環境設定 # これをしないと GAE のモジュールをインポートできない。 # テスト対象のクラスも同様。 # ここを自分の環境に合わせて書き変えます GAE_HOME = 'Google App Engine SDK ディレクトリのパス' PROJECT_HOME = 'アプリケーションのルートディレクトリのパス' # テストで使う GAE のモジュールのパ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く