[rspec-users] Need help to figure out why this expectation isn't met.
haim.ashkenazi at gmail.com
Tue Oct 26 09:34:51 EDT 2010
-----BEGIN PGP SIGNED MESSAGE-----
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:
>>> 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
>> 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).
> (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:
> 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.
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.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)
-----END PGP SIGNATURE-----
More information about the rspec-users