【问题标题】:rspec, validate the actual Expectation parameterrspec,验证实际的期望参数
【发布时间】:2015-09-20 02:39:42
【问题描述】:

是否可以验证模拟对象方法参数接收到的实际参数?我无法进行直接比较,因为我正在使用 Fabricate 并将对象转换为序列化格式。

例如:

expect(user).to have_received(:add).with(valid_user())

所以在这种情况下,valid_user() 将接受参数,验证并返回一个布尔值,以验证是否将有效值传递给 user.add()

这样的事情可以做吗?

到目前为止,我一直在阅读 https://github.com/rspec/rspec-mocks 中有关参数匹配器的文档

编辑:在我的具体情况下,参数是一个相当大的字符串。我想通过可能对字符串运行正则表达式来验证字符串是否有效。所以我想通过一个简单地返回真/假的验证方法来运行参数。

【问题讨论】:

  • 实际上,我认为我需要的是:expect(user).to have_received(:add).with(/regexcheck/),我可以使用正则表达式检查来验证唯一接受的参数

标签: ruby-on-rails ruby rspec mocking expectations


【解决方案1】:

您可以在 with() 中使用自定义匹配,如规范文档https://relishapp.com/rspec/rspec-mocks/docs/setting-constraints/matching-arguments#using-a-custom-matcher 中所示

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多