用Python编写单元测试

问题描述:

我正在使用restish框架在Python中编写RESTful API。我想编写一些单元测试(例如使用unittest包),它会向我的应用程序发出不同的请求并验证结果。单元测试应该能够按原样运行,而无需启动单独的Web服务器进程。如何使用restish设置模拟环境来执行此操作?用Python编写单元测试

感谢

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() 

我测试一切使用WebTestNoseTests,我可以强烈推荐。它快速,灵活且易于设置。只需将它传递给你的wsgi函数,你就可以走了。

由于restish是一个WSGI框架,你可以利用一些WSGI测试工具的任一者:

至少有几个的那些工具,如斜纹,应该能够测试你的应用程序,而无需启动一个单独的Web服务器。 (例如,请参阅“Testing WSGI Apps with Twill”链接了解更多详细信息。)

您可能想要询问其他论坛/列表是否有此类事物的首选工具。