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?


-- 
Have Fun,
   Steve Eley ([email protected])
   ESCAPE POD - The Science Fiction Podcast Magazine
   http://www.escapepod.org

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to