1. ホーム
  2. ruby

[解決済み] 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