在Python中编写restish的单元测试

时间:2009-07-13 21:30:39

标签: python unit-testing

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

由于

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

由于restish是一个WSGI框架,您可以利用许多WSGI测试工具中的任何一个:

这些工具中至少有一些(如Twill)应该能够在不启动单独的Web服务器的情况下测试您的应用程序。 (例如,有关详细信息,请参阅“Testing WSGI Apps with Twill”链接。)

你可能想在restish论坛/列表上询问他们是否有这种类型的首选工具。

答案 2 :(得分:1)

Restish有一个内置的TestApp类,可用于测试restish应用程序。 假设你的root恢复项目callte中有一个“test”目录,用paster创建了“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()