Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs Plone: Viewlet mittels Unittesting testen

Plone: Viewlet mittels Unittesting testen

Um ein Viewlet in einem Unittest zu testen, muss das Viewlet während des Testvorganges selbst erstellt werden. Diese kurze Anleitung zeigt, wie dies zu bewerkstelligen ist.

Um ein Viewlet zu instanziieren werden folende Dinge benötigt:

  • ein Context
  • ein Request
  • eine BrowserView

Von einem Unittest aus kann man direkt auf das Portal-Objekt mit Hilfe von self.portal zugreifen. Das Portal kann als Context benutzt werden. Einen Testrequest kann man auch direkt aus diesem Portal erzeugen: self.portal.REQUEST

Nun fehlt nur noch eine BowserView. Es reicht sich hierfür eine einfache BrowserView zu instanziieren, welche ebenfalls nur einen Context und ein Request benötigt. Das ganze sieht dann wie folgt aus:

from inqbus.bannerrotation.browser.viewlets import BannerViewlet
from Products.Five.browser import BrowserView

view = BrowserView(self.portal, self.portal.REQUEST)
viewlet = BannerViewlet(self.portal, self.portal.REQUEST, view)

Nun können wir wie gewohnt auf das Viewlet zugreifen und seine Funktionen testen.