我正在为一个框架式 Plone 插件创建功能测试,该插件通过视图(BrowserViews)与其他插件交互。
如何注册一个仅在功能测试中可用的视图以用于测试目的?我想模拟集成点,看看它是否能提供良好的视图查找和调用。
我正在为一个框架式 Plone 插件创建功能测试,该插件通过视图(BrowserViews)与其他插件交互。
如何注册一个仅在功能测试中可用的视图以用于测试目的?我想模拟集成点,看看它是否能提供良好的视图查找和调用。
我用以下方法做到了这一点:
def setUp(self):
self.app = self.layer['app']
self.portal = self.layer['portal']
# Register view directly by pushing it to zope.component multi-adapter registry
zope.component.provideAdapter(
# Our class
factory=TestingRedirectHandler,
# (context, request) layers for multiadapter lookup
# We provide None as layers are not used
adapts=(None, None),
# All views are registered as IBrowserView interface
provides=zope.publisher.interfaces.browser.IBrowserView,
# View name
name='redirect_handler')
browser = Browser(self.portal)
browser.handleErrors = False
browser.raiseHttpErrors = False
self.browser = browser
def tearDown(self):
"""
"""
# Dynamically unregister a view
gsm = zope.component.getGlobalSiteManager()
gsm.unregisterAdapter(factory=TestingRedirectHandler,
required=(None, None),
provided=zope.publisher.interfaces.browser.IBrowserView,
name="redirect_handler")
如果你有一个测试文件夹,你可以在那里创建一个configure.zcml
文件并在那里注册一个视图(python 文件应该在那里以保持一致性),应该就是这样。