3

BDDとテスト全般を独学するためのレールアプリに取り組んでいます。cucumber + webrat + rspec を使用して、railcasts ビデオ tuts の後。このアプリでは、クイズ has_many の質問があります。私がテストしているビューは、質問を2回、非連続的にレンダリングする必要があります。(ここでは連続性をテストしていません)これを確認することを目的としたキュウリのシナリオがあります

Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident"
When I go to the experiment page for quiz titled "Pearl Jam"
Then I should see "Corduroy" twice
And I should see "Dissident" twice 

私のステップは次のように定義されています。

Then /^I should see "([^\"]*)" twice$/ do |text|
  regexp = Regexp.new(text + "(.+)" + text)
  response.should contain(regexp)
end 

ツールで正規表現をテストしたところ、動作しているように見えますが、テストはキュウリで失敗します。
私はいくつかのドキュメントをグーグルで検索しましたが、webrat の唯一のドキュメントは API ドキュメントです。応答をテキストとして表示できませんでした。なにか提案を?

4

2 に答える 2

6

応答してみましたか。

Then /^I should see "([^\"]*)" twice$/ do |text|
  regexp = Regexp.new(text + "(.+)" + text)
  response.body.should contain(regexp)
end
于 2009-08-28T13:44:35.150 に答える
1

これを行間で機能させるには、ダミアンの答えを変更する必要がありました。

Then /^I should see "([^\"]*)" twice$/ do |text|
  regexp = Regexp.new(text + "(.+)" + text, Regexp::MULTILINE)
  response.body.should contain(regexp)
end
于 2011-02-03T02:20:42.017 に答える