[rspec-users] should contain vs. =~
David Chelimsky
dchelimsky at gmail.com
Mon Sep 6 11:15:52 EDT 2010
On Sep 6, 2010, at 9:51 AM, Brennon Bortz wrote:
> On 6 Sep 2010, at 15:39, David Chelimsky wrote:
>
>> On Sep 6, 2010, at 9:20 AM, Brennon Bortz wrote:
>>
>>> On 6 Sep 2010, at 14:55, David Chelimsky wrote:
>>>
>>>> On Sep 6, 2010, at 8:15 AM, Brennon Bortz wrote:
>>>>
>>>>> I'm developing another view test. Relevant example:
>>>>>
>>>>> it "should show the item's url" do
>>>>> rendered.should contain("http://www.example.com")
>>>>> end
>>>>>
>>>>> I'm calling render in a before block. I have other similar examples on the page in which I'm simply using:
>>>>>
>>>>> rendered.should =~ "..."
>>>>>
>>>>> These all work fine, as does the first example I posted here. However, when trying to express that first example with a regex (which I prefer), the example fails:
>>>>>
>>>>> it "should show the item's url" do
>>>>> rendered.should =~ /http:\/\/www.example.com/
>>>>> end
>>>>>
>>>>> Am I missing something?
>>>
>>>
>>> Failures:
>>> 1) widgets/show.html.erb widget details should show the widget's url
>>> Failure/Error: rendered.should =~ /http:\/\/www.example.com/
>>> expected: /http:\/\/www.example.com/,
>>> got: "http://www.example.com" (using =~)
>>>
>>> I realise this is because of the escaped HTML output, but I'm not quite sure what to do about it...
>>
>> I think contain is your best bet here, unless you actually want to change the expectation so it includes the escaped characters.
>
> I've got no problem doing that. On a related note, though, is there any possibility that Capybara matchers will ever be available in view/helper examples? should_contain is a little bit open-ended for my taste.
I'd like that very much, but, as things stand today, they're bound to the Capybara session, so they won't work in view specs (which don't have a full request cycle). I've chatted w/ Jonas about this and he's interested in decoupling the matchers so we could use them against an arbitrary string, but there's no definite commitment to that or an ETA.
Wish I had better news than that, but that's the state of things.
Cheers,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100906/906b60c7/attachment.html>
More information about the rspec-users
mailing list