就像在标题中一样。我有一个可以手动测试的模型。我在浏览器中输入 url 并从其中一个视图中接收结果。事情是 unittest 应该这样做。
我认为应该有某种方法来创建请求,将其发送到应用程序并作为回报接收上下文。
就像在标题中一样。我有一个可以手动测试的模型。我在浏览器中输入 url 并从其中一个视图中接收结果。事情是 unittest 应该这样做。
我认为应该有某种方法来创建请求,将其发送到应用程序并作为回报接收上下文。
您可以使用 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)
Pyramid 并没有真正公开测试真实请求和接收内部信息的方法。您可以使用以下方法自己执行遍历器:
from pyramid.traversal import traverse
app = get_app(...)
root = get_root(app)
out = traverse(root, '/my/test/path')
context = out['context']
但是,测试有点做作。使用功能测试来检查返回的页面是否符合您的期望会更相关。