shoulda-matchersとRSpecの新しいexpect syntaxを使用する正しい形式は何ですか?shoulda-matchers RSpecは構文を期待しています
答えて
1は確かに次のように新しい構文を期待してshoulda-マッチャを使用することができますが:
it 'should validate presence of :email' do
expect(subject).to validate_presence_of :email
end
以上簡潔かつ読みにくく:
it { expect(subject).to validate_presence_of :email }
ワンライナーshould
形式これらマッチャーは通常、config.syntax == :expect
の場合でも2.14で明示的にサポートされています。それはshould
がそうでなければ依存しているKernel
の猿のパッチ適用に依存しない
describe User
it { should validate_presence_of :email }
end
:のようにshould
が暗黙の件名で使用されている。
これはhttps://github.com/rspec/rspec-expectations/blob/master/Should.mdでカバーされています。実際には、このドキュメントでは、この例外を説明するために上記のshoulda
マッチャーの例を使用しています。
Using implicit `subject` with `expect` in RSpec-2.11も参照してください。it
の代わりに使用できる設定オプションについて説明しています。
expect_it { to validate_presence_of :email }
更新:RSpecの3.0(ベータ2)のとおり、あなたも使用することができます:
it { is_expected.to validate_presence_of :email }
最初のブロックは 'desribe User'に囲まれるでしょう、そうですか?それは3行の3行の比較のように見えますが、それほどではありません。もしそうなら、それを最初のコードブロックに明瞭にするために追加したいかもしれません。 –
@MichaelDurrantはい、そうです。合意したこれを指摘してくれてありがとう。回答が更新されました。 –
誰もがdownvoteが何であるか考えている?これは "主に意見に基づく"という近い票に関連していますか? –
私は@ピーター・alfvinの答えをsuplementます。あなたはshoulda-matchers
とモデルとその移行に自分自身をテストする場合は、あなたはit
ブロックの:expect
外を使用することはできませんので、書くことはできません。
RSpec.describe ModelName, type: :model do
expect(subject).to belong_to(:user)
end
そして、あなたはexpectionを取得します:
`expect` is not available on an example group (e.g. a `describe` or `context` block).
正しいバージョンは:
RSpec.describe ModelName, type: :model do
it { expect(subject).to belong_to(:user) }
end
- 1. 構文エラー:「do」が予期しない(「期待」「期待」)
- 2. 構文エラー:予期しないセミコロンまたは改行、期待}
- 3. Devise、Rspec、ユーザーの期待
- 4. 解析エラー: "構文エラー、予期しない ';'、期待T_FUNCTION"
- 5. Colllection_check_boxes構文エラー、予期しない ''、期待 ')'
- 6. 解析エラー: 『;』「(」、「」期待や構文エラー、予期しない
- 7. Pythonは文字バッファオブジェクトを期待しています
- 8. デーモンの実行中に「構文エラー、予期しないkEND、$ endを期待しています」
- 9. 構文エラー、予期しないkeyword_else、入力の終了を期待しています^
- 10. Rspec redirect_toルートが期待していない(または誤って解析されていますか?
- 11. Rspec:まだ存在しないリソースでの受信を期待するには?
- 12. 期待してIEnumerableを期待する
- 13. このルビーコードの何が問題なのですか?期待して構文エラー、予期しないtIDENTIFIERは、keyword_end
- 14. RSpecのとRailsコントローラーの期待
- 15. RSpec should_receiveでいくつかの(しかしすべてではない)引数を期待するには?
- 16. ライブラリモジュールのrspecテストを追加することが期待できないようです。期待とマッチャー
- 17. 適切なRspecの構文
- 18. 予期せぬtidentifierがkeyword_endを期待しています
- 19. rspec-mocksのreceive.withが間違っていると期待する方法
- 20. エラー:MIDL2025:構文エラー:インターフェイスが予期しています
- 21. irbでRSpecの期待値を使用する方法
- 22. rspecエラー:例でレールを学ぶ:期待していないときにオブジェクトがありません。
- 23. py-appscriptは引数を期待しています
- 24. Initializing C structは式を期待しています
- 25. mysql_query()はパラメータを期待しています
- 26. 構文解析エラー:予期しない構文エラーです。
- 27. 構文解析エラー:構文エラー、予期しないT_IF、 '、'または ';'
- 28. 構文解析エラー:構文エラー、予期しない 'if'(T_IF)、 '、'または ';'エラー
- 29. ANTLR 3解析 - 不一致文字...期待している
- 30. フラッシングバッファーを期待してください
申し訳ありませんが、私はshouldaを意味しました – trev9065
これは主に意見ベースに基づいて投票 - 閉鎖に関しては、私はうわーldは、何かが「良いアイデア」であるかどうかを尋ねるこの特定の例は、懸念が非問題であるという事実に基づく説明があるため、例外であると主張する。 –
は、それが適切であるようにquesrionの詳細を編集しました。 –