Every time you call #comments_proc, it will generate a new list:
http://github.com/carlosbrando/remarkable/blob/master/remarkable_rails/lib/remarkable_rails/action_controller/macro_stubs.rb#L459
So all your stubs will be lost.
# Solution 1: Reuse discussion_proc
describe DiscussionsController do
mock_model :discussion
describe :get => :new do
expects :new, :on => Discussion, :returns => discussion_proc
expects :comments, :on => discussion_proc, :returns => discussion_proc
expects :build, :on => discussion_proc
should_assign :to => :discussion, :with => discussion_proc
end
end
# Solution 2: Make your own comments_proc
describe DiscussionsController do
mock_model :discussion
def self.comments_proc
proc { @comments ||= [mock_comment] }
end
describe :get => :new do
expects :new, :on => Discussion, :returns => discussion_proc
expects :comments, :on => discussion_proc, :returns => comments_proc
expects :build, :on => comments_proc
should_assign :to => :discussion, :with => discussion_proc
end
end