[解決済み] RSpecでモジュールをテストする
2022-04-20 12:26:02
質問
RSpecでモジュールをテストする際のベストプラクティスは何でしょうか?私はいくつかのモデルに含まれるいくつかのモジュールを持っており、今のところ私は単に各モデルに対して重複したテストを持っています(いくつかの違いはありますが)。それをDRYアップする方法はありますか?
解決方法は?
rspecのホームページでより良い解決策を見つけました。どうやら、共有のサンプルグループに対応しているようです。以下から https://www.relishapp.com/rspec/rspec-core/v/2-13/docs/example-groups/shared-examples !
共有例グループ
共有のサンプルグループを作成することができます を作成し、そのグループを他の のグループです。
例えば、以下のような動作があるとします。 のすべてのエディションに適用されます。 製品の大小にかかわらず。
まず、"共有 "を因数分解します。 という動作をします。
shared_examples_for "all editions" do
it "should behave like all editions" do
end
end
その後、動作を定義する必要がある場合 をLarge版とSmall版で作成します。 共有ビヘイビアを参照する it_should_behave_like() メソッドを使用します。
describe "SmallEdition" do
it_should_behave_like "all editions"
it "should also behave like a small edition" do
end
end
関連
-
[解決済み】未定義のメソッド(NoMethodError)ruby
-
[解決済み] Rubyでファイル名を変更するには?
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] Rubyで日付文字列をパースする
-
[解決済み] string literal in condition "とはどういう意味ですか?
-
[解決済み] gemをインストールできない - makeが内部または外部のコマンド操作可能なプログラムまたはバッチファイルとして認識されない。
-
[解決済み] Rubyでファイルを移動するにはどうしたらいいですか?
-
[解決済み] フェイク、モッキング、スタビングの違いとは?
-
[解決済み] RSpecのlet()はいつ使うのか?
-
[解決済み] データベース駆動型アプリケーションのユニットテストに最適な戦略とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ActionController::UnknownFormat
-
[解決済み] Rubyでファイル名を変更するには?
-
[解決済み] RubyのHashをキーでアルファベット順にソートする方法
-
[解決済み] RubyのFile.openで "No such file or directory - text.txt (Errno::ENOENT)" というエラーが発生する。
-
[解決済み] Ruby on railsで改行せずにコンソールに "puts "を使用するにはどうすればよいですか?
-
[解決済み] 文字列の文字をアルファベット順に並べるには?
-
[解決済み] Rubyで=~と/Θはどういう意味ですか?
-
[解決済み] Ruby で配列の順序を逆転させる
-
[解決済み] OpenSSL AES-256-CBC 暗号化エラー、"間違った最終ブロック長" Ruby
-
[解決済み] RSpecのlet()はいつ使うのか?