-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Chris,
On Oct 26, 2010, at 11:15 AM, Chris Mear wrote: > > On 25 Oct 2010, at 09:54, Haim Ashkenazi wrote: > >> On Oct 25, 2010, at 9:09 AM, Haim Ashkenazi wrote: >> >>> Hi >>> >>> This is my first ruby script, so sorry if it's trivial :) >>> >>> I have a should_receive expectation on :new which should work (and works on >>> a simple test I wrote) but it doesn't work in my case and I can't figure >>> out why. The source is on github (commit: >>> 5197b763f391d6d358ca7bc5838375c9247271d8). The spec that doesn't work is in >>> spec/runsshlib/cli_spec.rb line 127 (currently commented out). >>> >>> Can someone pls help me figure out why the expectation doesn't work? >>> >>> Thanks in advance >>> >>> Haim >> >> Hi >> >> I'm not sure if the URLs in the original post can be viewed :( so here they >> are: >> >> ∙ The repository is here: http://github.com/babysnakes/runssh >> ∙ The spec with the problem is >> http://github.com/babysnakes/runssh/blob/5197b763f391d6d358ca7bc5838375c9247271d8/spec/runsshlib/cli_spec.rb >> (line 127). >> >> Thanks >> >> Haim >> > > (Moved your reply inline.) > > The rescuing that you do in line 56 of CLI#run was obscuring the real error > here: > > 1) The CLI interface when run with subcommand shell should correctly > initialize SshBackend > Failure/Error: cli.run > host definition (cust2 => dc => somehost) doesn't exist! > # ./lib/runsshlib/config_file.rb:101:in `get_host' > # ./lib/runsshlib/cli.rb:228:in `run_shell' > # ./lib/runsshlib/cli.rb:54:in `call' > # ./lib/runsshlib/cli.rb:54:in `run' > # ./spec/runsshlib/cli_spec.rb:133 > > I found this by commenting out the lines where you rescue the exception and > raise a Trollop error instead. > > So the example wasn't even reaching the line in CLI#run_shell where you > create the SshBackend, because it was failing on the get_host call (since the > example uses dummy data). > > I got the example to pass by also mocking/stubbing the ConfigFile stored in > @c, and stubbing its get_host method: > > http://github.com/chrismear/runssh/commit/87ca98a1429b975e00b87ffadbb0b4c81d849af8 > > If you want to mock everything outside of the CLI object in this spec, that's > one (not hugely elegant) way to do it. > > When you have problems like this, it's helpful to dig down and find the exact > place the error is occurring. > > Chris Wow, that was a stupid mistake. Thanks for the time, the good eye and the advice :) I actually don't need to stub everything, I just had to fix the path to match the fixtures. Thanks Haim -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iEYEARECAAYFAkzG2PsACgkQhwMtGgRKzT1NsACeJ5MTWvcBCxqbPaHqGfy/QLuJ +G4AoJD2hLjZ/eguqJFCOTs96dIQEa9W =2UGK -----END PGP SIGNATURE----- _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users