0

このアプリケーションでは、関心のあるいくつかのドメインモデルのafter_create / update/deleteコールバックを記述しました。これらのモデル内に、変更されたモデルの必要なデータをxml化して監査テーブルに格納する新しい監査モデルを作成します。例として、Consultantモデルのafter_createコールバックは次のようになります。

def after_create
xml = #private xmlize() is called which returns the data of new Consultant object
audit = Audit.new :data=>xml.to_s
audit.save
end

ここで、監査オブジェクトをモックして、そのsaveメソッドがRSpecを使用して呼び出されているかどうかを確認したいと思います。さらに良いことに、RSpecを介してxmlのコンテンツを正規表現する方法があれば、RubyinRails環境を介してそれを行う方法を学ぶことができれば幸いです。

4

1 に答える 1

0

Auditオブジェクトはメソッド内で構築されているため、自然にモックすることはできません。

あなたがしたいと思うかもしれないことは、AuditFactoryを作成して注入し(どこかで...)、それを使用してAuditオブジェクトを作成することです。

次に、モックファクトリがモック監査を作成し、監査のsaveメソッドが呼び出されることを期待して、ファクトリと監査の両方をモックすることができます。

ファクトリでの期待値は、正しいxmlを期待するように設定することもできます。

于 2010-12-31T13:17:05.130 に答える