【发布时间】:2009-07-13 21:30:39
【问题描述】:
我正在使用restish 框架在Python 中编写一个RESTful API。我想编写一些单元测试(例如,使用 unittest 包),它将向我的应用程序发出不同的请求并验证结果。单元测试应该能够按原样运行,而无需启动单独的 Web 服务器进程。如何使用 restish 设置模拟环境来执行此操作?
谢谢
【问题讨论】:
标签: python unit-testing
我正在使用restish 框架在Python 中编写一个RESTful API。我想编写一些单元测试(例如,使用 unittest 包),它将向我的应用程序发出不同的请求并验证结果。单元测试应该能够按原样运行,而无需启动单独的 Web 服务器进程。如何使用 restish 设置模拟环境来执行此操作?
谢谢
【问题讨论】:
标签: python unit-testing
由于 restish 是一个 WSGI 框架,您可以利用多种 WSGI 测试工具中的任何一种:
其中至少有一些工具,例如 Twill,应该能够在不启动单独的 Web 服务器的情况下测试您的应用程序。 (例如,有关详细信息,请参阅“Testing WSGI Apps with Twill”链接。)
您可能想在 restish 论坛/列表上询问他们是否有针对此类事情的首选工具。
【讨论】:
Restish 有一个内置的 TestApp 类,可用于测试 restish 应用程序。 假设您在使用 paster 创建的根 restish 项目 callte "restest" 中有一个“测试”目录。
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()
【讨论】: