inherited_resources コントローラーの仕様を書こうとしています。rspec の mock_model を使用して、データベースとのすべての統合をモックすることにしました。残念ながら、次のエラーが発生するため、作成および更新アクションの仕様を作成できません: https://gist.github.com/936947 この問題について誰か助けてもらえますか?
2 に答える
4
私はflexmockを使って同じ問題を抱えていました。
update_attributes
原因は、ルーティングの決定にメソッドを使用していないことです。resource.errors
が空かどうかをチェックします。
したがって、適切に応答させるには、errors
メソッドもモックアウトする必要があります。
lib/inherited_resources/base_helpers.rb の関連コード @248 行目は次のとおりです。
def respond_with_dual_blocks(object, options, &block) #:nodoc:
args = (with_chain(object) << options)
case block.try(:arity)
when 2
respond_with(*args) do |responder|
blank_slate = InheritedResources::BlankSlate.new
if object.errors.empty?
block.call(responder, blank_slate)
else
block.call(blank_slate, responder)
end
end
when 1
respond_with(*args, &block)
else
options[:location] = block.call if block
respond_with(*args)
end
end
于 2011-04-28T21:02:26.310 に答える
0
失敗メッセージは、コントローラー内から名前付きルートにアクセスできないことに関するものであるため、これが mock_model と関係があるかどうかはわかりません。実際のモデルを使用して同じ例を試しましたか?
于 2011-04-22T16:49:12.823 に答える