[rspec-users] Need help to figure out why this expectation isn't met.
Haim Ashkenazi
haim.ashkenazi at gmail.com
Tue Oct 26 09:34:51 EDT 2010
-----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-----
More information about the rspec-users
mailing list