2

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

我认为应该有某种方法来创建请求,将其发送到应用程序并作为回报接收上下文。

4

2 回答 2

2

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

有关 Pyramid 中的详细信息,请参阅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)
于 2011-04-15T22:28:25.357 回答
1

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

from pyramid.traversal import traverse

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

context = out['context']

但是,测试有点做作。使用功能测试来检查返回的页面是否符合您的期望会更相关。

于 2011-04-16T02:58:20.943 回答