0

拡張したモデルがあります。元のクラスと拡張されたクラスの両方をテストする最良の方法は何ですか? 現在、私は Dataset モデルをテストしています。セクション内にデータセット テストを含める方法はありますか? それとも、Section に追加されたものに対してテストを書くだけですか?

前もって感謝します。

モデル

class Dataset < ActiveRecord::Base
  validates :name, presence: true
  # ...
end

class Section < Dataset
  # ...
end

仕様

describe Dataset do
  it "should have a valid name" do
    should validate_presence_of(:name)
  end
  # ...
end
4

3 に答える 3

3

最良の方法は、親クラス用のテスト セットと、子クラスが追加する追加の動作用の別のテスト セットを用意することだと思います。クラスごとに別々のテストで共有動作をテストすることは冗長であり、保守が困難です。また、子のテストに親のテストを含める必要はありません。テストが完了すると、テストされます。

于 2013-06-14T13:28:34.253 に答える
3

共有サンプル グループを使用できます。

https://www.relishapp.com/rspec/rspec-core/v/2-0/docs/example-groups/shared-example-group

于 2013-06-14T15:31:31.903 に答える
1

まず、これは拡張クラスではなく継承クラスです。

サブクラス、新しいメソッド、または上書きに特別なものがある場合は、個別にテストしてください。新しいものがない場合は、親クラスをテストするだけで十分です。

于 2013-06-14T13:43:10.783 に答える