2013-04-14 21 views
2

我创造了frameworkish的Plone插件与通过视图其他插件(BrowserViews)交互功能测试是可用的。如何注册视图仅在功能测试

一个可以如何注册一个视图其中仅用于测试目的的功能测试可用?我想模拟整合点,看看它是否可以提供良好的视图查找和调用。

回答

0

如果你有一个测试文件夹,你可以在那里创建一个configure.zcml文件并在那里注册一个视图(python文件应该在那里以保持一致性),应该是这样。

2

我这样做有以下几点:

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")