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. RSpec .to_emptyはArgumentErrorを発生させます。 "期待構文は演算子マッチャーをサポートしていません"
- 2. 構文エラー:オペレータが期待しています(do文)
- 3. 構文エラー:「do」が予期しない(「期待」「期待」)
- 4. 構文エラー:予期しないセミコロンまたは改行、期待}
- 5. FatalErrorException構文エラー、予期しない「」URL「」(T_CONSTANT_ENCAPSED_STRING)、期待は「)」
- 6. 1084:構文エラー:leftbraceの前に正しいparenを期待しています
- 7. Devise、Rspec、ユーザーの期待
- 8. 構文エラー:期待式はスクリプト
- 9. 構文エラー、予期しない変数(T_VARIABLE)期待「firstOrCreate」(T_STRING)、または「$
- 10. 構文エラー、予期しない「}」、keyword_end期待}
- 11. 構文エラー、予期しない「:」、期待「)」 - Railsの2.1.0
- 12. Colllection_check_boxes構文エラー、予期しない ''、期待 ')'
- 13. 解析エラー: 『;』「(」、「」期待や構文エラー、予期しない
- 14. 解析エラー: "構文エラー、予期しない ';'、期待T_FUNCTION"
- 15. Pythonは文字バッファオブジェクトを期待しています
- 16. 1084:構文エラー:関数の直前に期待しています
- 17. デーモンの実行中に「構文エラー、予期しないkEND、$ endを期待しています」
- 18. 構文エラー、予期しないkeyword_else、入力の終了を期待しています^
- 19. Rspec:まだ存在しないリソースでの受信を期待するには?
- 20. Rspec redirect_toルートが期待していない(または誤って解析されていますか?
- 21. JSON-LD構文エラーを示す構造化データテストツール:「値、オブジェクトまたは配列が期待されています」
- 22. Rspecは予期せぬハッシュキーを聞かせました=>、期待している '}'
- 23. 構文エラー「(」、;期待私は間違って何をやっている
- 24. RSpecのとRailsコントローラーの期待
- 25. 解析エラー:構文エラー、予期しない '公共'(T_STRING)、機能を期待(T_FUNCTION)
- 26. トークン "void"の構文エラー、@メソッドメソッドの宣言に期待されています
- 27. Python JSONDecodeError: '、'区切り文字を期待しています
- 28. このルビーコードの何が問題なのですか?期待して構文エラー、予期しないtIDENTIFIERは、keyword_end
- 29. 期待してIEnumerableを期待する
- 30. PHP-解析エラー:構文エラー、予期しないT_CONSTANT_ENCAPSED_STRING、期待T_STRINGまたはT_VARIABLEまたは '$'
申し訳ありませんが、私はshouldaを意味しました – trev9065
これは主に意見ベースに基づいて投票 - 閉鎖に関しては、私はうわーldは、何かが「良いアイデア」であるかどうかを尋ねるこの特定の例は、懸念が非問題であるという事実に基づく説明があるため、例外であると主張する。 –
は、それが適切であるようにquesrionの詳細を編集しました。 –