Ruby minitest-传递任何期望的参数

Ruby minitest-传递任何期望的参数,ruby,minitest,Ruby,Minitest,我使用以下代码模拟对类方法的调用: def test_calls_update_profile_job_for_a_lead input = ContactInput.new valid_attributes mock = MiniTest::Mock.new use_case = CreateContact.new user, input, mock mock.expect(:perform_async, nil, [user.id, 1, ::Contact])

我使用以下代码模拟对类方法的调用:

def test_calls_update_profile_job_for_a_lead
  input = ContactInput.new valid_attributes

  mock = MiniTest::Mock.new

  use_case = CreateContact.new user, input, mock

  mock.expect(:perform_async, nil, [user.id, 1, ::Contact])

  use_case.run!

  assert mock.verify
end
问题是我必须传入特定值-

[user.id,1,::Contact]

使考试通过

有没有一种方法,我不必指定确切的值,或者至少可以约束参数是什么。我不想检查确切的参数,我只想确保调用了该方法。

根据:

使用大小写相等(即“==”运算符)将args与预期args进行比较,允许不太具体的预期

比如说,

mock = MiniTest::Mock.new
mock.expect(:perform_async, 'goodbye', [Integer, Integer, String])
puts mock.perform_async(1, 1, 'hello')  #=>goodbye 
puts mock.perform_async(1, 1, 1)  #=>MockExpectationError

+1似乎Minitest使得在没有指定精确值的情况下无法预期。在我的用例中,当我获得一个随机生成的UUID时,如何指定确切的值?这是一个漂亮的文档。