I am having failing simple spec which I couldn''t figure out why :-( http://gist.github.com/402517 * ffaker (0.4.0) * machinist (1.0.6) * rails (3.0.0.beta3) * rspec (2.0.0.beta.8) * rspec-core (2.0.0.beta.8) * rspec-expectations (2.0.0.beta.8) * rspec-mocks (2.0.0.beta.8) * rspec-rails (2.0.0.beta.8) Can someone help. Thx -- Posted via http://www.ruby-forum.com/.
On May 15, 2010, at 7:18 PM, Kwang how Tan wrote:> I am having failing simple spec which I couldn''t figure out why :-( > http://gist.github.com/402517 > > * ffaker (0.4.0) > * machinist (1.0.6) > * rails (3.0.0.beta3) > * rspec (2.0.0.beta.8) > * rspec-core (2.0.0.beta.8) > * rspec-expectations (2.0.0.beta.8) > * rspec-mocks (2.0.0.beta.8) > * rspec-rails (2.0.0.beta.8) > > Can someone help.Not if you don''t post the failure messages :) Please do so.
> Not if you don''t post the failure messages :) Please do so.Sorry, I don''t understand what you mean. Please explain. Thx -- Posted via http://www.ruby-forum.com/.
On Mon, May 17, 2010 at 4:37 AM, Kwang how Tan <lists at ruby-forum.com> wrote:>> Not if you don''t post the failure messages :) Please do so. > > Sorry, I don''t understand what you mean. > Please explain.Please run the spec and post the failure messages you get. Use the -b flag you get a full backtrace: spec spec/controllers/sessions_controller_spec.rb -b Thanks, David
Here are the failure messages, and the backtraces. Thx 1) SessionsController #create authenticate fail flash.now[:error] should be set to failure Failure/Error: flash.now[:error].should == "Invalid username or password!" expected: "Invalid username or password!", got: nil (using ==) # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/expectations/fail_with.rb:23:in `fail_with'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/operator_matcher.rb:39:in `fail_with_message'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/operator_matcher.rb:61:in `__delegate_operator'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/operator_matcher.rb:51:in `eval_match'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/operator_matcher.rb:29:in `block in use_custom_matcher_or_delegate'' # ./spec/controllers/sessions_spec.rb:33:in `block (4 levels) in <top (required)>'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:41:in `instance_eval'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:41:in `block in run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:39:in `catch'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:39:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:181:in `block in run_examples'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:179:in `map'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:179:in `run_examples'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:171:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `block in run_all'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `each'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `inject'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `run_all'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:27:in `block in run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:34:in `block in report'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:140:in `sync_output'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:29:in `report'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:26:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:12:in `block in autorun'' 2) SessionsController #create authenticate successfully should redirect Failure/Error: expects(:redirect_to_target_or_default).with(twikets_path) not all expectations were satisfied unsatisfied expectations: - expected exactly once, not yet invoked: #<Rspec::Core::ExampleGroup::Nested_1::Nested_2::Nested_2:0xe058520>.redirect_to_target_or_default(''/twikets'') satisfied expectations: - allowed any number of times, already invoked once: User(id: integer, username: string, name: string, password_hash: string, password_salt: string, status: string, lock_version: integer, created_at: datetime, updated_at: datetime).authenticate(any_parameters) # ./spec/controllers/sessions_spec.rb:44:in `block (4 levels) in <top (required)>'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:41:in `instance_eval'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:41:in `block in run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:39:in `catch'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:39:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:181:in `block in run_examples'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:179:in `map'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:179:in `run_examples'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:171:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `block in run_all'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `each'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `inject'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `run_all'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:27:in `block in run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:34:in `block in report'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:140:in `sync_output'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:29:in `report'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:26:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:12:in `block in autorun'' Finished in 0.47966 seconds 14 examples, 2 failures -- Posted via http://www.ruby-forum.com/.
On Mon, May 17, 2010 at 9:32 PM, Kwang how Tan <lists at ruby-forum.com> wrote:> Here are the failure messages, and the backtraces. > > Thx > > 1) SessionsController #create authenticate fail flash.now[:error] should > be set to failure > ? ?Failure/Error: flash.now[:error].should == "Invalid username or > password!" > ? ?expected: "Invalid username or password!", > ? ? ? ? got: nil (using ==)I think the problem here is that the expectation is set on flash.now, but that''s not how flash.now works - views still just access flash (not flash.now). Try this: it ''flash.now[:error] should be set to failure'' do post :create flash[:error].should == "Invalid username or password!" end> > 2) SessionsController #create authenticate successfully should redirect > ? ?Failure/Error: > expects(:redirect_to_target_or_default).with(twikets_path)And in this case the expects message is being sent to the example group, not the controller. Try: controller.expects(:redirect_to_target_or_default).with(twikets_path) HTH, David
Both Spec still fail :( 1) SessionsController #create authenticate fail flash.now[:error] should be set to failure Failure/Error: flash[:error].should == "Invalid username or password!" expected: "Invalid username or password!", got: nil (using ==) # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/expectations/fail_with.rb:23:in `fail_with'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/operator_matcher.rb:39:in `fail_with_message'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/operator_matcher.rb:61:in `__delegate_operator'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/operator_matcher.rb:51:in `eval_match'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/operator_matcher.rb:29:in `block in use_custom_matcher_or_delegate'' # ./spec/controllers/sessions_spec.rb:33:in `block (4 levels) in <top (required)>'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:41:in `instance_eval'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:41:in `block in run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:39:in `catch'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:39:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:181:in `block in run_examples'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:179:in `map'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:179:in `run_examples'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:171:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `block in run_all'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `each'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `inject'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `run_all'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:27:in `block in run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:34:in `block in report'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:140:in `sync_output'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:29:in `report'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:26:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:12:in `block in autorun'' 2) SessionsController #create authenticate successfully should redirect Failure/Error: controller.expects(:redirect_to_target_or_default).with(twikets_path) undefined local variable or method `controller'' for #<Rspec::Core::ExampleGroup::Nested_1::Nested_2::Nested_2:0xc256ef4> # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-expectations-2.0.0.beta.8/lib/rspec/matchers/method_missing.rb:6:in `method_missing'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/actionpack-3.0.0.beta3/lib/action_dispatch/testing/assertions/routing.rb:174:in `method_missing'' # ./spec/controllers/sessions_spec.rb:44:in `block (4 levels) in <top (required)>'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:41:in `instance_eval'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:41:in `block in run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:39:in `catch'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example.rb:39:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:181:in `block in run_examples'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:179:in `map'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:179:in `run_examples'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/example_group.rb:171:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `block in run_all'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `each'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `inject'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:51:in `run_all'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:27:in `block in run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:34:in `block in report'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:140:in `sync_output'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/formatters/base_formatter.rb:29:in `report'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:26:in `run'' # /home/tkhow/.rvm/gems/ruby-1.9.1-p378/gems/rspec-core-2.0.0.beta.8/lib/rspec/core/runner.rb:12:in `block in autorun'' Finished in 0.40236 seconds 14 examples, 2 failures -- Posted via http://www.ruby-forum.com/.