8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

测试哈希中的数组内容

dr_barto 3月前

143 0

在 Rspec 中,我正在测试包含如下数组的哈希:subject { describe_class.call(build: build_one, user:)it '返回正确的数据' do response = subject expected_response = ...

在 Rspec 中,我正在测试包含如下数组的哈希:

subject { described_class.call(build: build_one, user:)

it 'returns the correct data' do
  response = subject

  expected_response = {
    id: build_one.id,
    status: {
      key: 'active',
      name: 'Active'
    },
    build_type: 'SystemBuild',
    calculated_type_id: CalculatedType.standard.id,
    build_time: build_one.build_time,
    summary: 'Lorem ipsum dolor sit amet...',
    data: [
      {id: '1', name: '', parent: ''},
      {id: '1.1', name: 'Calc type 1', parent: '1'},
      {id: '1.2', name: 'Calc type 2', parent: '1'},
      {id: '1.3', name: 'Calc type 3', parent: '1'},
      {id: '1.1.1', name: 'Value 1', parent: '1.1'},
      {id: '1.1.2', name: 'Value 2', parent: '1.1'},
      {id: '1.2.1', name: 'Value 3', parent: '1.2'},
      {id: '1.3.1', name: 'Value 4', parent: '1.3'},
      {id: '1.3.2', name: 'Value 5', parent: '1.3'},
      {id: '1.3.3', name: 'Value 6', parent: '1.3'}
    ]
  }

  expect(response).to match(expected_response)
end

我的问题是 data 数组不一定按照我在 expected_response .

我当然可以更改 中的顺序 expected_response ,但我不想以这种方式限制它。对于应用程序来说,数组顺序根本不重要,更改应用程序的其他部分可能会改变顺序。唯一重要的是所有元素都存在于数组中。

当我运行测试时,我得到以下结果:

Diff:

 :build_time: 2024-06-22 10:17:55.0000000000 -0700,
 :build_type: "SystemType",
 :calculated_type_id: 3,
 :id => 234,
-:data => [{:id=>"1", :name=>"", :parent=>""}, {:id=>"1.1", :name=>"Calc type 1", :parent=>"1"}, {:id=>"1.2", :name=>"Calc type 2", :parent=>"1"}, {:id=>"1.3", :name=>"Calc type 3", :parent=>"1"}, {:id=>"1.1.1", :name=>"Value 1", :parent=>"1.1"}, {:id=>"1.1.2", :name=>"Value 2", :parent=>"1.1"}, {:id=>"1.2.1", :name=>"Value 3", :parent=>"1.2"}, {:id=>"1.3.1", :name=>"Value 4", :parent=>"1.3"}, {:id=>"1.3.2", :name=>"Value 5", :parent=>"1.3"}, {:id=>"1.3.3", :name=>"Value 6", :parent=>"1.3"}]
+:data => [{:id=>"1", :name=>"", :parent=>""}, {:id=>"1.1", :name=>"Calc type 1", :parent=>"1"}, {:id=>"1.2", :name=>"Calc type 2", :parent=>"1"}, {:id=>"1.3", :name=>"Calc type 3", :parent=>"1"}, {:id=>"1.1.1", :name=>"Value 1", :parent=>"1.1"}, {:id=>"1.2.1", :name=>"Value 3", :parent=>"1.2"}, {:id=>"1.3.2", :name=>"Value 5", :parent=>"1.3"}, {:id=>"1.1.2", :name=>"Value 2", :parent=>"1.1"}, {:id=>"1.3.1", :name=>"Value 4", :parent=>"1.3"}, {:id=>"1.3.3", :name=>"Value 6", :parent=>"1.3"}]
 :status => {:key=>"active", :name=>"Active"},
 :summary => "Lorem ipsum dolor sit amet..."

我认为这样 match(...) 可以忽略数组的顺序 data ,只需检查所有元素是否存在。有没有办法做到这一点而不必检查哈希中的每个元素?

帖子版权声明 1、本帖标题:测试哈希中的数组内容
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由dr_barto在本站《ruby》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在为我们的 Rails 应用程序整合一个 gem,以便通过 Entra ID 使用 SAML 单点登录/注销。我对需要实现的最后一点有一些疑问:ID 提供商发起的单点注销请求...

    我正在为我们的 Rails 应用程序整合一个 gem,以便通过 Entra ID 使用 SAML 单点登录/注销。我对需要实现的最后一点有一些疑问:ID 提供商发起的单点注销请求。

    我们在服务提供商(Rails 应用程序)中使用 Active Record Session Store,默认情况下,创建的表存储会话 ID 和会话数据。但是 IdP 无法知道每个 SP 的会话 ID,对吗?我唯一需要参考的信息是 IdP 注销请求中的名称 ID(与会话关联的用户名)?实际上,我也需要将名称 ID 存储在会话表中,通过 IdP 注销请求中的名称 ID 找到相应的会话,然后删除该会话?

    我现在遇到的问题是,当 IdP 注销请求进入时,会话不会被删除。我认为这是因为 Active Record Session Store 中间件没有为该请求获取正确的会话。而是在表中添加了一个新会话。

    切线相关的是,SLO 是否可以使用 cookie 存储?

返回
作者最近主题: