【问题标题】:Write unit tests for restish in Python在 Python 中为 restish 编写单元测试
【发布时间】:2009-07-13 21:30:39
【问题描述】:

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

谢谢

【问题讨论】:

    标签: python unit-testing


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      您可能想在 restish 论坛/列表上询问他们是否有针对此类事情的首选工具。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2010-10-02
          • 2020-05-28
          • 1970-01-01
          • 2017-04-06
          • 2014-03-13
          • 1970-01-01
          • 2016-02-19
          相关资源
          最近更新 更多