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

发布于 2024-11-02 01:03:59 字数 113 浏览 8 评论 0原文

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

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

Just like in the title. I have a model that I can test manually. I enter url in a browser and receive a result form one of the views. Thing is unittest should be doing that.

I think there should be some way to create a request, send it to the application and in return receive the context.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初见终念 2024-11-09 01:03:59

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

请参阅 http:// docs.pylonsproject.org/projects/pyramid/1.0/narr/testing.html#creating-function-tests 了解 Pyramid 中的具体信息,粘贴在这里供后代使用:

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)

You can create functional tests using the WebTest package, which allows you to wrap your WSGI application in a TestApp that supports .get(), .post(), etc.

See http://docs.pylonsproject.org/projects/pyramid/1.0/narr/testing.html#creating-functional-tests for specifics in Pyramid, pasted here for posterity:

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)
梦里人 2024-11-09 01:03:59

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

from pyramid.traversal import traverse

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

context = out['context']

但是,该测试有点人为。使用功能测试来检查返回的页面是否符合您的预期会更有意义。

Pyramid doesn't really expose a method for testing a real request and receiving information about the internals. You possible execute the traverser yourself using:

from pyramid.traversal import traverse

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

context = out['context']

However, the test is a bit contrived. It'd be more relevant to use a functional test that checks if the returned page is what you expect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文