I picked Option 2 (http://gist.github.com/51568) but Option 1 sounds interesting since I wont have to hack in support for instance variables, params, etc.
On Jan 24, 2:22 pm, Yehuda Katz <[email protected]> wrote: > On Sat, Jan 24, 2009 at 12:08 PM, Stephen Eley <[email protected]> wrote: > > > On Sat, Jan 24, 2009 at 11:17 AM, Michael Klishin > > <[email protected]> wrote: > > > > Merb's concept of testing of requests is "test the whole stack". It > > > does not matter how isolated your tests are, > > > as long as they do what they supposed to do: reveal problems as you do > > > changes to the code. > > > I've just gotta play Devil's Advocate here. > > > What you are describing is not strictly Merb's concept of testing > > requests. It's Yehuda Katz's concept of testing requests. It's a > > pretty good concept and I happen to agree with it, but Yehuda and Ezra > > have also said over and over that Merb should not be too opinionated. > > That it may ship with particular default opinions, but if you have > > *other* opinions it should not be too difficult to slot your own in. > > > Philp may be somewhat annoying in his wheedling "ask questions by > > complaining" style, but in this case he's actually right. There *is* > > a gap in Merb testing. It really is harder to test partials or > > helpers in Merb than it is in Rails. I tried it myself on a helper > > for a little while and then gave up on it, because figuring out how to > > simulate a view context for the testing turned out to be harder than > > the code itself was worth. I blogged about the experience: > > >http://extraneous.org/past/2009/1/3/learning_from_trying_too_hard/ > > > As I said there, the lesson I took from that reinforced Yehuda's > > philosophy. There's a sensible reason why the gap exists: there's no > > help for view isolation testing because no one on the core team wanted > > it. Fair enough. In my particular use case that wasn't a problem. > > > BUT. I can think of cases where it'd be genuinely helpful. Plugins > > would be a good example. If I want to share my little helper with the > > world as a gem, it'd be a more useful test for *your* app if I tested > > it in isolation against the Merb public API than if I rigged up a fake > > mini-application in the specs. I'm sure it's possible to do that now > > if one knew Merb's innards well enough, but there are no test helpers > > for it, so it'd take pretty deep knowledge to set up the context. > > > Merb and Rails are both good demonstrations that tools create > > cultures. Following the lead of Merb's creators, this culture's > > majority view is that integration testing is to be lauded and > > isolation testing of controllers and views is to be denigrated. Fair > > enough. But griping at everyone who raises the question, to say that > > to want isolation testing means you're Doing It Wrong regardless of > > business need or context, seems unnecessarily dogmatic. And my own > > understanding was that Merb culture is supposed to be against > > dogmatism. > > > Am I wrong? > > No. I agree with you here. I have *never* been opposed to giving people > tools to do more isolation testing, and I agree that this represents a gap > in Merb testing. A couple of things to keep in mind (when solving this > problem): > > - Merb's render_mixin is a mixin, not part of Merb::Controller or > Merb::AbstractController. However, it does assume at least > AbstractController capabilities. Therefore; > - Option 1: Create a testing context that uses RenderMixin > - Option 2: Use a one-off AbstractController to test partials > > I may take a look at it this week if nobody nabs it first. > > -- Yehuda > > > > > -- > > Have Fun, > > Steve Eley ([email protected]) > > ESCAPE POD - The Science Fiction Podcast Magazine > > http://www.escapepod.org > > -- > Yehuda Katz > Developer | Engine Yard > (ph) 718.877.1325 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "merb" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/merb?hl=en -~----------~----~----~----~------~----~------~--~---
