2009-07-13 111 views
1

我正在使用restish框架在Python中編寫RESTful API。我想編寫一些單元測試(例如使用unittest包),它會向我的應用程序發出不同的請求並驗證結果。單元測試應該能夠按原樣運行,而無需啓動單獨的Web服務器進程。如何使用restish設置模擬環境來執行此操作?用Python編寫單元測試

感謝

回答

1

Restish具有內置的TestApp類,可用於測試恢復應用程序。 假設你在根目錄恢復項目調用「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」鏈接瞭解更多詳細信息。)

您可能想要詢問其他論壇/列表是否有此類事物的首選工具。