rspec - 在哈希中断言一些键/值对
问题描述
我有一个定义,它接受一个哈希:
Hash[String, Variant[String,Integer,Undef]] $property_additions;
我可以使用以下 rspec 测试此属性
it { is_expected.to contain_my__define('instance-name').with_property_additions({
'my_first_property' => 'my_first_value',
'my_second_property' => 'my_second_value',
...,
...,
})}
这将测试哈希是否包含列出的值并且仅包含列出的值。为了使用它,我需要在这里列出哈希中的所有键/值对。
我的问题是,我如何断言某些属性是在没有指定哈希中的所有属性的情况下设置的?
简单地说,我正在寻找一些 rspec 匹配器,例如“with_key_value_pairs_included({...})”。
解决方案
我认为被测实体是您希望声明的类My::Define[instance-name]
,而不是My::Define
定义的类型本身。如果是后者,那么允许参数值与您之前指定的值有任何不同都是没有意义的。
我的问题是,我如何断言某些属性是在没有指定哈希中的所有属性的情况下设置的?
如果我正确理解了这个问题,那么这是一件合理的事情,但 rspec-puppet 并没有为此做出规定。我不能完全排除您可以传递某个自定义Hash
子类的参数的可能性,该参数以某种方式使rspec-puppet 的参数检查,按照您的想法工作,但即使您设法使其工作,它也会很复杂且易碎。
推荐阅读
- python - 为什么 Python 在连接 ElasticSearch Server 后不返回 True
- sql - 如何优化 SQL 查询(Oracle 数据库)
- php - 文件.htacces AddType 无法正常工作
- javascript - 在画布上围绕圆周旋转矩形
- java - 扩展为 BigDecimal 的类从超类类型返回对象
- angular - Angular 2条件模板?
- python - 根据每个唯一记录熊猫数据帧的第一个和最后一个计算每个事件的总时间
- python - 机械化 browser.submit() 返回原始表单而不是预期结果
- javascript - 尝试遍历 API 数据时遇到问题
- android - 在 opengl loadTexture() 操作中,8 位 png 图像是否比 32 位图像节省内存?