キュウリのステップ定義をテストします。私たちがチェックできるようにしたいのは、実際に失敗すると予想されるテストが失敗するということです。これを行うためには、失敗するシナリオを記述してテストスイートに追加したいが、失敗した場合にのみ "合格"するようにタグ付けするか、そうでない場合は表示する。どのようにこれにアプローチしますか?キュウリの失敗したステップと失敗をどのように予想するのですか?
5
A
答えて
0
負の状態でテストする必要があります。不合格のステップは、単に渡すステップの逆です。だから、次のようなことをしてください:
Then /i should not be true/ do
some_value.should_not be_true
end
これは私が失敗のテストをする方法です。また、例外などをキャッチし、ブロックが実際にあなたが単に否定的な結果をテストするためのテストケースでのテストではなく、肯定的な結果を逆にその例外
lambda do
something_that_horks
end.should raise_error(Specific::Error)
をスローしないことを確認することができます。
-1
-w
スイッチをCucumberコマンドに渡します。
通常の形式を出力しますが、最後にすべてのテストケースが失敗したかどうかを要約して示します。
0
これは非常に複雑な例ですが、最終結果はキュウリのシナリオが失敗すると期待する本当にクリーンな方法です。これらは私が取り組んでいるプロジェクトのほんの一部の小さなコンポーネントです。不足しているデータを持つユーザーを作成する理由は、ユーザーモデルにバリデーターがいくつかあるためです。すべてのソースコードはhereです。ここ
機能/ step_definitions/before_step.rb
Before("[email protected]") do
def assert_cucumber(assersion, msg = "an error was thrown")
assert(assersion == true, msg)
end
end
Before("@fails") do
def assert_cucumber(assersion, msg = "an error was thrown")
assert(assersion == false, msg)
end
end
機能/ step_definitions/user_step.rb
Given /^a user with$/ do |params|
params = params.rows_hash
unless User.find_by({username: params[:username]})
assert_cucumber(User.new(params).save, "could not create user")
end
end
機能/ user.feature
Scenario: check if userers exsist
Given a user with
| username | johnsmith |
| email | [email protected] |
| password | password |
Then a user with username "johnsmith"
@fails
Scenario: create user with missing data
Given a user with
| username | johndoe |
Then a user with username "johndoe"
関連する問題
- 1. キュウリのステップ定義に失敗しました
- 2. はキュウリのテストに失敗した
- 3. 単体テストでの失敗をどうやって予想しますか?
- 4. 私のキュウリのシナリオは、ステップを一緒に実行すると失敗しますが、単独で実行すると失敗します。
- 5. キュウリ+セレンがランダムに失敗する
- 6. キュウリ `プレスボタン`失敗(Capybara :: ElementNotFound)
- 7. writeToFileが失敗する - どのように失敗するのですか(どのツール)?
- 8. "カタログの更新に失敗しました"とpoeditが失敗する
- 9. データベースセキュリティはどのように失敗しましたか?
- 10. キュウリとカピバラのテストに失敗しました。どうすればデバッグできますか?
- 11. WindowsでのAndroid仮想デバイスのインストールに失敗しました
- 12. テストが失敗した場合、Android jenkinsビルドに失敗する
- 13. Google APIに失敗した1つのアドレスでCFWが失敗する
- 14. カスタマイズされたdeviseがキュウリで失敗する
- 15. PyImport_AppendInittabはどのように失敗しますか?
- 16. dynamic_castはどのように失敗しますか?
- 17. adbが失敗して[INSTALL_PARSE_FAILED_NO_CERTIFICATES]に失敗するのはなぜですか?
- 18. プロパティベースのテストは、失敗すると予想したときに引き続き実行します。
- 19. カメラプレビュー失敗 - queueBufferが失敗する
- 20. はとXamarin.Androidプロジェクトをビルドに失敗しました「エラーXA5209:解凍の失敗」
- 21. maven-antrun-pluginが失敗したときにビルドに失敗する
- 22. キュウリ:バックグラウンドがコード0で終了しても失敗する
- 23. 先行ステップが失敗した場合の後続ステップの実行
- 24. トリガーを失敗させる原因と失敗した場合の対応
- 25. XSL変換が失敗したXML出力のJD Edwardsレポートで失敗する
- 26. "SSLルーチン:SSL_GET_NEW_SESSION:sslセッションIDコールバックに失敗しました"でSSL_accept()が失敗する
- 27. Androidデバイスモニタ - Java仮想マシンの作成に失敗しました
- 28. Android仮想デバイスの読み込みに失敗しました
- 29. Java仮想マシンの作成に失敗しました
- 30. Java仮想マシンの作成に失敗しました
目的は、テストすることではありません状態が真ではないということは、状態が真でないときにテストが失敗することをテストすることです。つまり、状態をテストするのではなく、手順をテストしています。 – kerkeslager