rspec,验证实际的Expectation参数
rspec, validate the actual Expectation parameter
是否可以验证模拟对象方法参数接收到的实际参数?我无法进行直接比较,因为我正在使用 Fabricate 并将对象转换为序列化格式。
例如:
expect(user).to have_received(:add).with(valid_user())
所以在那种情况下 valid_user()
将接受参数,验证和 return 一个布尔值,以验证一个有效值被传递到 user.add()
这样的事情能做吗?
到目前为止,我一直在阅读 https://github.com/rspec/rspec-mocks 中关于参数匹配器
的文档
编辑:在我的具体情况下,参数是一个相当大的字符串。我想通过可能 运行ning 一个针对字符串的正则表达式来验证该字符串是否有效。所以我想 运行 通过一个简单的 returns true/false 的验证方法来论证。
您可以在 with() 中使用自定义匹配,如规范文档中所示 https://relishapp.com/rspec/rspec-mocks/docs/setting-constraints/matching-arguments#using-a-custom-matcher
是否可以验证模拟对象方法参数接收到的实际参数?我无法进行直接比较,因为我正在使用 Fabricate 并将对象转换为序列化格式。
例如:
expect(user).to have_received(:add).with(valid_user())
所以在那种情况下 valid_user()
将接受参数,验证和 return 一个布尔值,以验证一个有效值被传递到 user.add()
这样的事情能做吗?
到目前为止,我一直在阅读 https://github.com/rspec/rspec-mocks 中关于参数匹配器
的文档编辑:在我的具体情况下,参数是一个相当大的字符串。我想通过可能 运行ning 一个针对字符串的正则表达式来验证该字符串是否有效。所以我想 运行 通过一个简单的 returns true/false 的验证方法来论证。
您可以在 with() 中使用自定义匹配,如规范文档中所示 https://relishapp.com/rspec/rspec-mocks/docs/setting-constraints/matching-arguments#using-a-custom-matcher