gpt4 book ai didi

ruby-on-rails - 使用 RSpec 测试哈希数组的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:52 26 4
gpt4 key购买 nike

我正在尝试使用 RSpec 测试散列数组,但我不知道如何测试它们,因为散列顺序可能会改变。例如:

[{name: 'John', age: 40, country: {abrev: 'US', name: 'United States'}}, {name: 'Peter', age: 43, country: {abrev: 'US', name: 'United States'}}]

等同于:

[{name: 'Peter', age: 43, country: {abrev: 'US', name: 'United States'}}, {name: 'John', age: 40, country: {abrev: 'US', name: 'United States'}}]

使用 RSpec 测试它们的最佳方法是什么?我应该使用自定义匹配器吗?

最佳答案

您可以使用 RSpec 的 contain_exactly匹配器,它不关心顺序。

expect(collection).to contain_exactly(
{name: 'John', age: 40, country: {abrev: 'US', name: 'United States'}},
{name: 'Peter', age: 43, country: {abrev: 'US', name: 'United States'}}
)

另一种选择是使用 match_array,其行为类似(顺序不重要),但期望的参数是一个数组,而不是单个元素。

expect(collection).to match_array([
{name: 'John', age: 40, country: {abrev: 'US', name: 'United States'}},
{name: 'Peter', age: 43, country: {abrev: 'US', name: 'United States'}}
])

关于ruby-on-rails - 使用 RSpec 测试哈希数组的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com