如何使用mocha存根具有参数并引发异常的方法?

时间:2016-06-10 14:54:19

标签: ruby-on-rails mocking minitest stub

我正在尝试存根具有单个参数的类的实例方法。这是该课程的简化形式。

class GetPost
  def call(post_id)
    #some meaningful stuffs
  end
end

class GetPreviewTemplate
  def call(post_id)
    begin
      GetPost.new().call(post_id)
    rescue => e
      Post.find_by_ref(post_id).update(failed: true)
      raise
    end
  end
end

以下是我尝试存储call GetPost方法以引发错误的方法,以便我可以在GetPreviewTemplateTest中验证失败的方案。

test 'that should NOT get the HTML content of non-existing dummy post from CMS' do
  GetPost.any_instance.stubs(:call).with(any_parameters).raises(ArgumentError)

  GetPreviewTemplate.new(@post.id).call

  assert_not @post.status
end

运行测试时出现以下错误

Wordpress::GetPreviewTemplateTest#test_that_should_NOT_get_the_HTML_content_of_non_existing_dummy_post_from_CMS:
ArgumentError: ArgumentError
    app/services/wordpress/get_preview_template.rb:19:in `call'

建议,请。

0 个答案:

没有答案