# Rspec + Oracle

**URL:** <https://www.ruby-forum.com/t/rspec-oracle/104193>\
**Category:** Rails\
**Created:** [May 15, 2007, 9:25am UTC](https://www.ruby-forum.com/t/rspec-oracle/104193 "2007-05-15T09:25:23Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 15, 2007, 9:25am UTC](https://www.ruby-forum.com/t/rspec-oracle/104193/1 "2007-05-15T09:25:23Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 15, 2007, 3:09pm UTC](https://www.ruby-forum.com/t/rspec-oracle/104193/2 "2007-05-15T15:09:01Z")

</div>

On 5/15/07, removed\_email\_address@domain.invalid [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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](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](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](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=797&func=browse](http://rubyforge.org/tracker/?atid=3149&group_id=797&func=browse)

Cheers,  
David

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 16, 2007, 8:25am UTC](https://www.ruby-forum.com/t/rspec-oracle/104193/3 "2007-05-16T08:25:34Z")

</div>

Thanks

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 18, 2007, 1:47pm UTC](https://www.ruby-forum.com/t/rspec-oracle/104193/4 "2007-05-18T13:47:06Z")

</div>

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 :).

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 16, 2007, 8:31am UTC](https://www.ruby-forum.com/t/rspec-oracle/104193/5 "2007-05-16T08:31:34Z")

</div>

> 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&aid=10577&group\_id=797&atid=3149](http://rubyforge.org/tracker/index.php?func=detail&aid=10577&group_id=797&atid=3149)

Thanks.I will use [http://rubyforge.org/mailman/listinfo/rspec-users](http://rubyforge.org/mailman/listinfo/rspec-users)

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 18, 2007, 2:14pm UTC](https://www.ruby-forum.com/t/rspec-oracle/104193/6 "2007-05-18T14:14:12Z")

</div>

I believe the bug was posted by John A., and it’s still open as  
of yesterday.

RSpec bug [#10577] Rails with Oracle breaks 0.9.2  
[http://rubyforge.org/tracker/index.php](http://rubyforge.org/tracker/index.php)?  
func=detail&aid=10577&group\_id=797&atid=3149

Your solution might help them!

Thanks,

-Anthony
