加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – minitest – 将任何参数传递给期望

发布时间:2020-12-17 02:40:56 所属栏目:百科 来源:网络整理
导读:我有以下代码用于模拟对类方法的调用: 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,::
我有以下代码用于模拟对类方法的调用:

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,::Contact]

使测试通过.

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

解决方法

根据 docs:

args is compared to the expected args using case equality (ie,the ‘===’ operator),allowing for less specific expectations.

例如,

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读