3

BDD と Cucumber の調査を開始しています。だから私は私のページが私が持っている2つの記事の内容を表示するかどうかを確認したい. これは、コンテンツが存在するかどうかを確認するために使用しているステップです。

Then /^I should see "([^"]*)"$/ do |desc|
 page.should have_content desc

 expected = Article.find_by_description(desc)
 page.should have_content(expected.navision_code)
 page.should have_content(expected.category.name)
end

通常、これは私が推測するトリックを行うはずですが、テストを実行すると、次のエラーメッセージが表示されました。

expected there to be content "---\n- tenetur\n" in "Alfa Paints Order System\n\n\n\nAlfa Paints\n\n\n\nSeth abernathy, admin\n\n\nVerander paswoord\n\nLogout\n\n\n\n\n\n\n\n\n\n\n\nAlfa Paints\nordering system\n\n\n\n\n\nOverzicht van alle artikelen\n\n\n\nBack\n\n\n\n\n\n\nProduct ID\nBeschrijving\nCategorie\n3001\nPaint\n---\n- tenetur\n\n3002\nBrush\n---\n- tenetur\n\n\n\n\n\n\n\n\n\n\n
(RSpec::Expectations::ExpectationNotMetError)
./features/step_definitions/admin_articles_steps.rb:41:in `/^I should see "([^"]*)"$/'
features/admin_articles.feature:10:in `Then I should see "Paint"'

ご覧のとおり、ペイントが必要です。エラー メッセージには、コンテンツの内部にペイントが含まれていることが示されています。しかし、どういうわけかキュウリはそれを認識していません。

私はきゅうりが初めてで、おそらく何かが欠けているかもしれませんが、誰かが私を助けてくれるかもしれません.

4

1 に答える 1

0

一度に 3 つのことをテストしているため、どの期待が失敗しているかを判断するのは困難です。最初のステップとして、最初の期待以外のすべてをコメントアウトして、考えている場所で失敗していることを確認してください。

Then /^I should see "([^"]*)"$/ do |desc|
 page.should have_content desc

// expected = Article.find_by_description(desc)
// page.should have_content(expected.navision_code)
// page.should have_content(expected.category.name)
end

それでも同じ問題が発生する場合は、デバッガーを追加して、テスト環境内で何が起こっているかを実験して確認できるようにします。これは、キュウリのテストをたくさん行う予定がある場合に開発する価値のあるスキルです。

Then /^I should see "([^"]*)"$/ do |desc|
 debugger
 page.should have_content desc
end

デバッグ コンソールから、desc 変数とページがどのように見えるかを確認します。

p desc
p page.content
于 2013-01-08T23:22:09.940 に答える