就像在標題中一樣。我有一個模型可以手動測試。我在瀏覽器中輸入url並從其中一個視圖中接收結果。事情是單元測試應該做的。單元測試以檢查給定路徑是否會返回正確的上下文
我認爲應該有一些方法來創建請求,將其發送到應用程序,並作爲回報接收上下文。
就像在標題中一樣。我有一個模型可以手動測試。我在瀏覽器中輸入url並從其中一個視圖中接收結果。事情是單元測試應該做的。單元測試以檢查給定路徑是否會返回正確的上下文
我認爲應該有一些方法來創建請求,將其發送到應用程序,並作爲回報接收上下文。
您可以使用該WebTest的包,它允許您將在支持.get()
一個TestApp
,.post()
你的WSGI應用程序等
見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)
金字塔並沒有真正公開測試一個真正的請求和接收有關的內部信息的方法。您可以使用自己執行橫移:
from pyramid.traversal import traverse
app = get_app(...)
root = get_root(app)
out = traverse(root, '/my/test/path')
context = out['context']
然而,測試是有點做作。使用功能測試來檢查返回的頁面是否符合您的期望會更有意義。
這樣,它檢查整個應用程序和res對象沒有關於上下文。我需要的測試應該只測試遍歷以查看它是否在上下文中返回正確的對象。 – mdob 2011-04-15 22:36:12