ruby-debug does not invoke from rspec (rails 3 rspec beta 22)

Anyone know how to get ruby-debug (ruby-debug19) to invoke when running my specs? When I place ‘debugger’ in my controller and run the spec, it just skips over it.

I have require ‘ruby-debug’ in spec_helper.rb

Rails 3, ruby 1.9.2, ruby-debug19, rspec 2.0.0.beta.22

Ok, now I found if I add require ‘ruby-debug’ in the spec itself the debugger invokes. However…

It is useless. I get a breakpoint in my controller but have no access to anything I want:

…/Users/DK/Documents/ror/projects/wavelineup3/app/controllers/user_sessions_controller.rb:14

respond_to do |format|

(rdb:1) @user_session

*** Unknown command: “@user_session”. Try “help”.

(rdb:1) self

*** Unknown command: “self”. Try “help”.

(rdb:1) params

*** Unknown command: “params”. Try “help”.

(rdb:1)

So, how does one go about debugging their tests, or rather specs, in rspec?

David Kahn wrote:

Ok, now I found if I add *require 'ruby-debug'* in the spec itself the debugger invokes. However....

It is useless. I get a breakpoint in my controller but have no access to anything I want:

../Users/DK/Documents/ror/projects/wavelineup3/app/controllers/user_sessions_controller.rb:14 respond_to do |format| (rdb:1) @user_session *** Unknown command: "@user_session". Try "help". (rdb:1) self *** Unknown command: "self". Try "help". (rdb:1) params *** Unknown command: "params". Try "help". (rdb:1)

Perhaps auto-eval is turned off in the debugger. Try typing "p @user_session" instead of "@user_session".

And why are you using RSpec specs for your controllers, anyway? Cucumber stories are better for that. RSpec is better for model logic.

So, how does one go about debugging their tests, or rather specs, in rspec?

Best,

Perhaps auto-eval is turned off in the debugger. Try typing "p

@user_session" instead of “@user_session”.

Thanks – worked perfectly.

And why are you using RSpec specs for your controllers, anyway?

Cucumber stories are better for that. RSpec is better for model logic.

Well, I was hoping to cap new things on this project with Rails 3, ruby 1.9.2, rspec, factory girl… is getting cucumber up and running is pretty incidental?

David Kahn wrote: [...]

And why are you using RSpec specs for your controllers, anyway? Cucumber stories are better for that. RSpec is better for model logic.

Well, I was hoping to cap new things on this project with Rails 3, ruby 1.9.2, rspec, factory girl.....

Uh, what? If you need a tool, use it. Don't impose silly limits on the number of new things in a project.

is getting cucumber up and running is pretty incidental?

If by "incidental" you mean "easy", then generally yes.

Best,

Thanks Marnen, I did take your prod and got Cucumber working… it was a great day, I think cucumber may even be a bigger win for me than rspec in terms of productivity.

i am having some issues around ruby-debug and rspec for rails3 so i was doing a google search for a solution and came across this thread. i'm sorry I couldn't miss your thoughts on rppec vs cucumber and don't wanna play smarty pants here, i just think you cannot replace rppec with cucumber because they are different tools really for different purposes.

i am also using cucumber for testing my projects' integrity - hence cucumber is for integration testing! - but also not lazy to write specs for my controller tests. i found that writing unit tests with rspec helps a lot while your project codebase grows and allows you to identify failing scenarios much easier. i am also trying to be as explicit in my tests as i can, covering edge cases etc.

i would not use rspec with integrated views - never been a big fan of that - but would definitely keep writing unit tests with rspec2 and cover integration testing with cucumber.

-- Attila

i am having some issues around ruby-debug and rspec for rails3 so i

was doing a google search for a solution and came across this thread.

i’m sorry I couldn’t miss your thoughts on rppec vs cucumber and don’t

wanna play smarty pants here, i just think you cannot replace rppec

with cucumber because they are different tools really for different

purposes.

I am new to both rspec and cucumber and still feeling my way. But at least for my current app what I am finding is that by starting with Cucumber, I cover the user experience pretty well, then just write specs as I write models, etc. But the confidence I have in my app is higher and also I am seeing (so far) that my focus is better. Maybe in a few weeks I can let you know but I am finding that if I have good cucumber coverage I feel less compulsive about the lower level test coverage and save time and effort on this. Of course, if I am writing a safety critical or highly sensitive component of course I would throw all the lower level stuff at it too. Just some thoughts from where I am currently.

i am also using cucumber for testing my projects’ integrity - hence

cucumber is for integration testing! - but also not lazy to write

specs for my controller tests. i found that writing unit tests with

I did for a bit write controller specs but they got overwhelming and I decided based on the 80/20 principle to just trust my cucumber results. Maybe I am wrong… time will tell :slight_smile: But I don’t disagree with your point, I think it probably goes back to what it is you want to test. I actually changed my method of handling roles so that I could test the class using rspec on the model, that made me feel that although I could perhaps find some problems writing controller specs, it would be diminishing returns.

Its interesting you just wrote this as right now I found an error where when vaidations fail on a page, the redirect is broken. My dilemma is that I could write a cuke test for this, but it really belongs to the controller. So this is where my blind spot is. I just hate the idea (because I become compulsive) to write a controller spec for every action and redirect, as many of these are role dependent too. I guess I have yet still to find a happy medium.