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?
Thanks,
Brennon B.
Software Researcher
Dundalk Institute of Technology
[email protected]
Ph.D. Researcher & Composer - Sonic Arts Research Centre
Queen’s University, Belfast
[email protected] / [email protected]
On Sep 6, 2010, at 8:15 AM, Brennon B. 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?
Please post the failure message.
On 6 Sep 2010, at 14:55, David C. wrote:
On Sep 6, 2010, at 8:15 AM, Brennon B. 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:
- 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…
On Sep 6, 2010, at 9:20 AM, Brennon B. wrote:
On 6 Sep 2010, at 14:55, David C. wrote:
On Sep 6, 2010, at 8:15 AM, Brennon B. 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:
- 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.
FWIW,
David
On Sep 6, 2010, at 9:51 AM, Brennon B. wrote:
On 6 Sep 2010, at 15:39, David C. wrote:
On Sep 6, 2010, at 9:20 AM, Brennon B. wrote:
On 6 Sep 2010, at 14:55, David C. wrote:
On Sep 6, 2010, at 8:15 AM, Brennon B. 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:
- 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
Capybara matchers I think will stay Capybara specific. However, you
can use this gem to test any kind of string containing html:
http://github.com/grimen/rspec_tag_matchers.
David: Maybe you should consider adding that gem to the rspec-rails
core or at least mention it in the docs. Need for it seems to be
popping up everywhere.
On 6 Sep 2010, at 15:39, David C. wrote:
On Sep 6, 2010, at 9:20 AM, Brennon B. wrote:
On 6 Sep 2010, at 14:55, David C. wrote:
On Sep 6, 2010, at 8:15 AM, Brennon B. 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:
- 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.
Thanks,
BB