<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Jake,<br>
<br>
Did this blogging ever take place? I am also quite interested. <br>
<br>
Does UnitRecord play nice with Story Runner?<br>
<br>
Blessings,<br>
Nate<br>
<br>
Ryan Platte wrote:
<blockquote
cite="mid:2f1a1dcb0806121829g76587d50lf6aba4e495b7a8e5@mail.gmail.com"
type="cite">Go for it, Jake. I'm interested to see what you'll write.<br>
<br>
<div class="gmail_quote">On Thu, Jun 12, 2008 at 7:23 PM, Jake
Scruggs <<a moz-do-not-send="true"
href="mailto:jake.scruggs@gmail.com">jake.scruggs@gmail.com</a>>
wrote:<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I
haven't had any problems with NullDB, but failing silently is its thing
(Null Object Pattern and all) so be careful. I think the tagging bit
you describe as coming soon to RSpec is pretty cool.<br>
<br>
I'm probably going to blog about this soon and will quote some things
from Ryan and David's responses -- unless of course either of you
object.<br>
<font color="#888888">-Jake</font>
<div>
<div class="Wj3C7c"><br>
<br>
<div class="gmail_quote">On Wed, Jun 11, 2008 at 10:08 AM, David
Chelimsky <<a moz-do-not-send="true"
href="mailto:dchelimsky@gmail.com" target="_blank">dchelimsky@gmail.com</a>>
wrote:<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<div>Hey Jake - thanks for sharing this. Couple o' comments below:
<div><br>
On Jun 11, 2008, at 9:26 AM, Jake Scruggs wrote:<br>
<blockquote type="cite">I've been using the NullDb (<a
moz-do-not-send="true"
href="http://agilewebdevelopment.com/plugins/nulldb" target="_blank">http://agilewebdevelopment.com/plugins/nulldb</a>)
plugin to disconnect RSpec from the database.</blockquote>
<div><br>
</div>
</div>
<div>The only drawback I've heard about NullDb is that it fails
silently in certain cases - has led to some painful debugging. Have you
had that experience?</div>
<div><br>
<blockquote type="cite">I don't like the global disconnect (for
all specs everywhere) that the web page suggests, so I set up this in
my spec_helper:<br>
<br>
describe "Unit Spec", :shared => true do<br>
before :all do<br>
ActiveRecord::Base.establish_connection(:adapter => :nulldb)<br>
end<br>
<br>
after :all do<br>
ActiveRecord::Base.establish_connection(:test)<br>
end<br>
end<br>
<br>
and then say this inside any describe block I want to disconnect from
the db:<br>
<br>
require File.dirname(__FILE__) + "/../spec_helper"<br>
<br>
describe User do<br>
it_should_behave_like "Unit Spec"</blockquote>
<div><br>
</div>
</div>
<div>This is cool that it works, but using it_should_behave_like
feels odd to me in this case. The User should not behave like a Unit
Spec, the examples should be disconnected.</div>
<div><br>
</div>
<div>You can do this instead if you like:</div>
<div><br>
</div>
<div>share_as :Disconnected do
<div><br>
before :all do<br>
ActiveRecord::Base.establish_connection(:adapter => :nulldb)<br>
end<br>
<br>
after :all do<br>
ActiveRecord::Base.establish_connection(:test)<br>
end<br>
end</div>
</div>
<div><br>
</div>
<div>describe User do</div>
<div> include Disconnected</div>
<div>...</div>
<div><br>
</div>
<div>Right now we don't have an arbitrary tagging mechanism but
it's something we've talked about. This gives me an idea that I'd like
to implement, and everything is pretty much in place to support this,
where the options hash is available to you in the before and after
blocks, so you could do this (CAREFUL - THIS DOES NOT WORK TODAY):</div>
<div><br>
</div>
<div>Spec::Runner.configure do |config|</div>
<div> config.before(:all)</div>
<div> if example_group_options[:disconnected]</div>
<div>
<div> ActiveRecord::Base.establish_connection(:adapter =>
:nulldb)</div>
<div> end</div>
</div>
<div> end</div>
<div>
<div> config.after(:all)</div>
<div> if example_group_options[:disconnected]</div>
<div>
<div> ActiveRecord::Base.establish_connection(:test)</div>
<div> end</div>
<div> end</div>
</div>
<div>end</div>
<div><br>
</div>
<div>Then you'd be able to say:</div>
<div><br>
</div>
<div>describe User, :disconnected => true do</div>
<div> ...</div>
<div><br>
</div>
<div>WDYT about that?</div>
<div><br>
</div>
<div>Cheers,</div>
<div>David</div>
</div>
<div>
<div>
<div><br>
</div>
<div><br>
</div>
<br>
<blockquote type="cite"><br>
.<br>
.<br>
.<br>
<br>
using nested describes to separate my unit (don't hit the db) from my
functional (do hit the db) specs<br>
<br>
-Jake <br>
<br>
<div class="gmail_quote">On Wed, Jun 11, 2008 at 8:37 AM, Ryan
Platte <<a moz-do-not-send="true" href="mailto:ryan@platte.name"
target="_blank">ryan@platte.name</a>> wrote:<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>Here are some Rake tasks I created to use RSpec with
UnitRecord. I set the default task to first run spec:fast, then
spec:slow, so if the fast ones fail we don't have to wait on the slow
ones to set up and run.</div>
<div><br>
</div>
<div>The fly in the ointment is that schema.rb has to be
current.</div>
<div><br>
</div>
<div>namespace :spec do</div>
<div><br>
</div>
<div> desc "Run all fast specs in spec directory (excluding
plugin specs)"</div>
<div> Spec::Rake::SpecTask.new(:fast) do |t|</div>
<div> t.spec_opts = ['--options',
"\"#{RAILS_ROOT}/spec/spec.opts\""]</div>
<div> t.spec_files = FileList['spec/**/*_fast_spec.rb']</div>
<div> #t.ruby_opts = ['-r spec/spec_helper', '-rubygems',
'-runit_record', "-e 'ActiveRecord::Base.disconnect!'"]</div>
<div> end</div>
<div><br>
</div>
<div> desc "Run all non-fast specs in spec directory
(excluding plugin specs)"</div>
<div> Spec::Rake::SpecTask.new(:slow => spec_prereq) do
|t|</div>
<div> t.spec_opts = ['--options',
"\"#{RAILS_ROOT}/spec/spec.opts\""]</div>
<div> t.spec_files =
FileList['spec/**/*_spec.rb'].exclude('spec/**/*_fast_spec.rb')</div>
<div> end</div>
<div><br>
</div>
<div>end</div>
<div>
<div>
<div><br>
</div>
<br>
<div class="gmail_quote">On Wed, Jun 11, 2008 at 1:36 AM,
David Chelimsky <<a moz-do-not-send="true"
href="mailto:dchelimsky@gmail.com" target="_blank">dchelimsky@gmail.com</a>>
wrote:<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Jun 9, 2008, at 11:31 PM, David Chelimsky wrote:<br>
<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hey Chirb,
<div><br>
<br>
Lastly, I may have mis-spoke about rails loading up columns from
schema.rb - I'm looking into it and will follow up when I learn the
truth. So Ryan - keep using unit-record for now :)<br>
</div>
</blockquote>
<br>
I definitely mis-spoke. I don't know where I got that in my head, but
it seems I did.<br>
<br>
I don't recall who said it, but unit_record does the column caching I
thought rails did. So now it's off to figure out how to get rspec to
play nice w/ unit_record.<br>
<br>
More soon.
<div>
<div><br>
<br>
Cheers,<br>
David<br>
_______________________________________________<br>
<a moz-do-not-send="true"
href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br>
<a moz-do-not-send="true"
href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list"
target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<br>
</div>
</div>
-- <br>
<font color="#888888">Ryan Platte </font><br>
_______________________________________________<br>
<a moz-do-not-send="true"
href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br>
<a moz-do-not-send="true"
href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list"
target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br>
</blockquote>
</div>
<br>
_______________________________________________<br>
<a moz-do-not-send="true"
href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br>
<a moz-do-not-send="true"
href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list"
target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a></blockquote>
</div>
</div>
</div>
<br>
</div>
<br>
_______________________________________________<br>
<a moz-do-not-send="true"
href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br>
<a moz-do-not-send="true"
href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list"
target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br>
</blockquote>
</div>
<br>
</div>
</div>
<br>
_______________________________________________<br>
<a moz-do-not-send="true"
href="mailto:ChicagoGroup-Members-List@rubyforge.org">ChicagoGroup-Members-List@rubyforge.org</a><br>
<a moz-do-not-send="true"
href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list"
target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
Ryan Platte
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
<a class="moz-txt-link-abbreviated" href="mailto:ChicagoGroup-Members-List@rubyforge.org">ChicagoGroup-Members-List@rubyforge.org</a>
<a class="moz-txt-link-freetext" href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a></pre>
</blockquote>
</body>
</html>