Hi all. Does anybody use Rspec with Oracle? I have RoR app + Oracle DB. I use Rspec 0.9.4. I have installed Rspec plugin and generated spec for model Country. If I use "@countries = Country.new" in my spec I get "ArgumentError in 'Country should be valid' block not supplied /vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/kernel.rb: 12:in `describe'" "@countries = Country.find(:first)" works but "@countries = Country.new" doesn't work. I have found some modifications for Rspec 0.9.2 in files "/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/kernel.rb" and "usr/lib/ruby/gems/1.8/gems/rspec-0.9.4/lib/spec/runner/extensions/ kernel.rb" but those modifications have not helped me. This is my spec: " require File.dirname(__FILE__) + '/../spec_helper' describe Country do before(:each) do @countries = Country.new # @countries = Country.find(:first) end it "should be valid" do @countries.should be_valid end end " Does anybody know how I can use method "new" of model in my Rspec's files with Oracle? Thanks.
on 2007-05-15 09:25
on 2007-05-15 15:09
On 5/15/07, firstname.lastname@example.org <email@example.com> wrote: > > Hi all. > Does anybody use Rspec with Oracle? I have RoR app + Oracle DB. I use > Rspec 0.9.4. This would be better targeted at http://rubyforge.org/mailman/listinfo/rspec-users. I'll answer this one here, but please post further rspec questions to that list. You're much more likely to get a response from people who have experienced the same issues you have there. > I have installed Rspec plugin and generated spec for model Country. > If I use "@countries = Country.new" in my spec I get > "ArgumentError in 'Country should be valid' > block not supplied > /vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/kernel.rb: > 12:in `describe'" That's odd. In release 0.9.4, kernel.rb has only 9 lines of code so there should not be an error coming from line 12 if you are using that version. Have you modified that file yourself? > > "@countries = Country.find(:first)" works but "@countries = > Country.new" doesn't work. > > I have found some modifications for Rspec 0.9.2 in files > "/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/kernel.rb" > and > "usr/lib/ruby/gems/1.8/gems/rspec-0.9.4/lib/spec/runner/extensions/ > kernel.rb" > but those modifications have not helped me. What do you mean by "found some modifications"? Also - 0.9.2 - is that a typo or are you using the 0.9.2 plugin with the 0.9.4 gem? If so, that's a no-no. Please be sure to read http://rspec.rubyforge.org/documentation/rails/install.html for more information. > it "should be valid" do > @countries.should be_valid > end > end > " > Does anybody know how I can use method "new" of model in my Rspec's > files with Oracle? There's no reason this shouldn't just work if you've installed rspec correctly and you put the specs where rspec wants them (the example above should be in spec/models/country_spec.rb). I'd re-install rspec and rspec_on_rails (per http://rspec.rubyforge.org/documentation/rails/install.html). You can also run the examples with the -b switch and get a full backtrace. If this doesn't help, feel free to follow up on the rspec list (prefered) or in this thread. If you think there is a bug, please report it to rspec's tracker: http://rubyforge.org/tracker/?atid=3149&group_id=7... Cheers, David
on 2007-05-16 08:25
on 2007-05-16 08:31
> That's odd. In release 0.9.4, kernel.rb has only 9 lines of code so > there should not be an error coming from line 12 if you are using that > version. Have you modified that file yourself? I'm sorry vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/kernel.rb:6:in `describe' > What do you mean by "found some modifications"? I mean this - http://rubyforge.org/tracker/index.php?func=detail... Thanks.I will use http://rubyforge.org/mailman/listinfo/rspec-users
on 2007-05-18 13:47
I make work rspec with oracle. I have a spec what contains Model.find(1) cause (record with id=1 exists in the table). Model.find(:first) works well Spec uses method "instance_eval" where name of ruby file and row number are passed as parameter. When script invokes "describe" method of OCI8 Class (oracle_adapter.rb) it is failed with error message "block not supplied". When I added an alias: "alias_method :my_describe,:describe" and called 'my_describe' instead of 'describe' spec did work well. Whose is this bug - ruby,spec, or oracle_adapter I have not known yet :).
on 2007-05-18 14:14
I believe the bug was posted by John Andrews, and it's still open as of yesterday. RSpec bug [#10577] Rails with Oracle breaks 0.9.2 http://rubyforge.org/tracker/index.php? func=detail&aid=10577&group_id=797&atid=3149 Your solution might help them! Thanks, -Anthony