[Grok-dev] How does one unittest a view?
janwijbrand at gmail.com
Wed Apr 8 11:05:26 EDT 2009
Wichert Akkerman wrote:
>> Wichert Akkerman wrote:
>>> How can you unittest a view? Trying to instantiate a view in a testcase
>>> fails when the constructor tries to access self.__view_name__ and
>> Maybe something like this?
>> :test-layer: unit
>> >>> import grok
>> >>> grok.testing.grok('sample')
> That groks the whole sample package, right? I do not want that, since
> that can have all kinds of effects. What I am looking for is the very
> minimal thing that allows me to instantiate a view so I can call methods
> on it. Currently I use this:
> def setUp(self):
> # grok makes unit testing extremely painful
> View.__view_name__ = "iew"
> def tearDown(self):
> del View.__view_name__
> del View.module_info
> def testSomething(self):
> view=View(model, None)
> # Do the tests here
> which works, but is not quite optimal
Would just grokking the View component itself be acceptable?
If so, I think you could do:
from grokcore.component.testing import grok_component
But this still involves having CA registrations taking place and it
seems that that is not what you want *at all*, right?
In that case yes, Grok makes it not easy to write a "pure" unittests for
I wonder how this would work in a vanilla Zope 3 context though...
More information about the Grok-dev