1

次の仕様を考えると:

describe Person
  describe "scopes and class methods" do
    let!(:sixty_older)     { FactoryGirl.create :person, birthdate: 60.years.ago }

    describe ".senior" do
      subject { Person.senior }
      it { should include(sixty_older) }
    end
  end
end

format --documentation を使用した CLI での出力:

Person
  scopes and class methods
    .senior
      should include #<Person person_id: 466, gender: "M", birthdate: "1953-02-07 19:44:22", birthdate_estimated: 0, dead: 0, death_date: nil, cause_of_death: nil, creator: 0, date_created: "0002-11-30 00:00:00", changed_by: nil, date_changed: nil, voided: 0, voided_by: nil, date_voided: nil, void_reason: nil, uuid: "key_4">

を別のものに変更することは可能#<Person person_id: ....>ですか?

たとえば、person_id、生年月日、uuid だけを表示しますか?

また、クラスレベルの変更ではなく、テストごとにカスタマイズできるかどうか。

4

2 に答える 2

1

次のように、ほとんどのrspecマッチャーにカスタム失敗メッセージを渡すことができます。

describe ".senior" do
  subject { Person.senior }
  it { should include(sixty_older), "should include #{person.person_id}:#{person.uuid}" }
end
于 2013-02-07T20:47:36.683 に答える
0

各例やコンテキストなどの前に、モデル クラスのinspectインスタンス メソッドをオーバーライドしてみてください。Rspec を使用して ActiveRecord モデルをテストする必要がありましたが、うまくいきました。

于 2013-05-16T09:19:06.860 に答える