单元测试以检查是否为给定路径返回正确的上下文

时间:2011-04-15 21:34:33

标签: python testing pylons pyramid unit-testing

就像在标题中一样。我有一个可以手动测试的模型。我在浏览器中输入url并从其中一个视图中接收结果。事情是单位测试应该这样做。

我认为应该有一些方法来创建请求,将其发送到应用程序,然后接收上下文。

2 个答案:

答案 0 :(得分:2)

您可以使用WebTest包创建功能测试,该包允许您将WSGI应用程序包装在支持TestApp.get()等的.post()中。

有关金字塔的详细信息,请参阅http://docs.pylonsproject.org/projects/pyramid/1.0/narr/testing.html#creating-functional-tests,此处粘贴后代:

import unittest

class FunctionalTests(unittest.TestCase):
    def setUp(self):
        from myapp import main
        app = main({})
        from webtest import TestApp
        self.testapp = TestApp(app)

    def test_root(self):
        res = self.testapp.get('/', status=200)
        self.failUnless('Pyramid' in res.body)

答案 1 :(得分:1)

Pyramid并没有真正公开测试真实请求和接收有关内部信息的方法。您可以使用以下方式自行执行遍历:

from pyramid.traversal import traverse

app = get_app(...)
root = get_root(app)
out = traverse(root, '/my/test/path')

context = out['context']

然而,测试有点人为。使用功能测试来检查返回的页面是否符合您的预期更为相关。