<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>Awesome!  That's a whole lot more of a response than I had anticipated.  Thanks!</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>On Sep 12, 2007, at 6:15 PM, David Chelimsky wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">On 9/12/07, Evan David Light &lt;<A href="mailto:evan@tiggerpalace.com">evan@tiggerpalace.com</A>&gt; wrote:</DIV> <BLOCKQUOTE type="cite"></BLOCKQUOTE><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I like to start w/ integration tests before anything exists at all.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">You can do that w/ Rails' Integration Tests or Story Runner (if you're</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">using RSpec's trunk).</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Story Runner is a new one for me.  I'll have to look it up.  Thanks!</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>(Halfway through writing this, I realized, courtesy of Google, that it's a recently integrated piece of functionality into RSpec-on-Rails.  I found <A href="http://www.grasprubyonrails.com/2007/8/30/story-runner-in-rspec-sneak-peek">this example</A> of yours captured here. )</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I see why this could be a good way to start coding.  This is exactly what I naturally wanted to do with RSpec but couldn't because RSpec seems oriented toward a lower-level set of issues.  I'll have to start playing with the trunk now.  This looks nifty.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">If you don't want broken software, then spec the views - but ONLY</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">the stuff that actually has business value.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Seems like sound common sense.  I caught myself earlier today writing a spec for a non-functional portion of my view, chided myself for it, ripped out the spec, and then continued.  </DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Once the view is sufficiently spec'd and the specs are passing, I know</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">what the controller needs to supply, so I start spec'ing the</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">controller. And on down to models.</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Good to realize that I'm not thinking that far off the mainstream here.</DIV><BR><BLOCKQUOTE type="cite"></BLOCKQUOTE><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">That's not to say that the philosophy isn't important. I, personally,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">love talking about philosophy. It helps me to understand why I</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">gravitate towards the things I do. </DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Ultimately, this is what I was looking for: not so much "what to do" but the "tao" of it.  Starting with the user in mind, from a view level, made some sense but too minutiae driven.  I like to dabble with new approaches but always asking "why?" along the way.  While a lot of what I have been doing with RSpec could be accomplished with Test::Unit, I'm finding that I prefer the RSpec approach somewhat more.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Same w/ approaches to testing and developing software. Agile isn't all</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">that agile if we're all finding "best practices" and applying them</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">like a bunch of blind followers of some religion. <BR></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Or if we spend so much time on "best practices" that we're not actually accomplishing anything?  Welcome to the government. ;-)</DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">"We have come to</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">value individuals and interactions over processes and tools," yet</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">we're always becoming slave to the next tool rather than becoming its</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">master and sticking it in our tool belt.</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>&lt;wisecrack&gt; You mean that instead of being Java Juju Zombies that we're becoming Ruby Robots? &lt;/wisecrack&gt;</DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Summing up - the series of steps I described above is what I *usually*</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">do because I know it works for me and the way I work. But I don't do</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">that 100% of the time, and I certainly don't feel bad when I break</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">that pattern. It's just a great tool to have lying around.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>And, of course, what works for one may not work for all.  However, with regard to Rails apps, I'm still finding my way.  That said, I know that I would prefer a TDD/BDD approach to writing it, hand testing it, seeing it mostly work, fix something (and perhaps breaking something else!), rinsing and repeating.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Thanks for the brain dump!</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Evan </DIV><DIV>IMs (all): sleight42</DIV><DIV><A href="http://evan.tiggerpalace.com">http://evan.tiggerpalace.com</A></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR></DIV><BR></BODY></HTML>