2009-07-13 16 views
1

私はrestishフレームワークを使ってPythonでRESTfulなAPIを書いています。私はいくつかの単体テスト(例えばunittestパッケージを使用して)を書いて、アプリケーションに異なるリクエストを行い、結果を検証したいと思います。単体テストは、個別のWebサーバープロセスを開始する必要なく、そのまま実行できる必要があります。これを行うにはどのようにしてrestishを使って模擬環境をセットアップすればよいですか?Pythonで簡単にユニットテストを書く

おかげ

答えて

1

Restishには、TestAppクラスが組み込まれています。このクラスは、古いアプリをテストするために使用できます。 根本的なプロジェクトのコールバックに "test"ディレクトリがあり、 "restest"がpasterで作成されていると仮定します。

import os 
import unittest 
from paste.fixture import TestApp 

class RootTest (unittest.TestCase): 

    def setUp(self): 
    self.app = TestApp('config:%s/../development.ini' % os.path.dirname(os.path.abspath(__file__))) 

    def tearDown(self): 
    self.app = None 

    def test_html(self): 
    res = self.app.get('/') 
    res.mustcontain('Hello from restest!') 

if __name__ == '__main__': 
    unittest.main() 
1

は私がWebTestNoseTestsを使用して、すべてをテストし、私は強く、それをお勧めすることができます。それは速く、柔軟で、セットアップが簡単です。ちょうどあなたのwsgi関数を渡すと、あなたは行くのが良いです。

1

restishはWSGIフレームワークですので、あなたはWSGIテストツールの数のいずれかを利用することができますなツイルなど、これらのツールのうちの少なくともいくつか、

別のWebサーバーを起動しなくてもアプリケーションをテストできるはずです。 (詳細については、「Testing WSGI Apps with Twill」のリンクを参照してください)

このタイプのものに適したツールがあるかどうかは、残念なさいフォーラム/リストにお尋ねください。

関連する問題