2
私は、モジュールを基本的なmock_modelオブジェクトに含めることによってモジュールを仕様しようとしています。しかし、モジュールで定義されたインスタンスメソッドを呼び出すと、ActiveRecordはデータベースとの接続を確立しようとします。RSpec mocked_modelにActiveSupport :: Concernを正しく組み込みテストするにはどうすればよいですか?
モジュール:
module Stuff
module SoftDelete
extend ActiveSupport::Concern
def soft_delete
puts "Called here"
end
end
end
仕様:
describe Stuff::SoftDelete do
class Network < ActiveRecord::Base
include Stuff::SoftDelete
attr_accessor :deleted_at
end
before (:each) do
@network = mock_model(Network)
end
context "When a record is deleted" do
it "is marked as deleted" do
@network.soft_delete
end
end
end
私はこの仕様を実行すると、次のエラーが発生します。
1) Stuff::SoftDelete When a record is deleted is marked as deleted
Failure/Error: @network.soft_delete
ActiveRecord::ConnectionNotEstablished:
ActiveRecord::ConnectionNotEstablished
# ./spec/apoc/soft_delete_spec.rb:18:in `block (3 levels) in <top (required)>'
注:私が含まれている場合実際のActiveRecordクラスのSoftDeleteモジュールで動作します。 mock_modelはモジュールを扱うことができないようです。
このページでいくつかの助けがありますか? ありがとう!