就像在标题中一样。我有一个可以手动测试的模型。我在浏览器中输入url并从其中一个视图中接收结果。事情是单位测试应该这样做。
我认为应该有一些方法来创建请求,将其发送到应用程序,然后接收上下文。
答案 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']
然而,测试有点人为。使用功能测试来检查返回的页面是否符合您的预期更为相关。