解決

対象インスタンスをprocで厳密に指定

test_instance = self #<= 重要
post_stub = proc do |address|
  test_instance.assert { address == 'address' }
end

注意

共通化しようと、インスタンス変数に格納してしまうと、正しく動作しない。

setup do
  @test_instance = self
end

it 'message' do
  post_stub = proc do |address|
    @test_instance.assert { address == 'address' } #<= NoMethodError: undefined method `assert' for nil:NilClass
  end
end

事象

post_stub = proc do |address|
  assert { address == 'address' } #<= `NoMethodError: undefined method `assert'`
end

Mail.stub_any_instance(:post, post_stub) do # Mail.send内で呼ばれる
  Mail.send
end