RSpec中的Sidekiq测试提供了错误的参数错误

1l5u6lss  于 2022-09-21  发布在  Ruby
关注(0)|答案(1)|浏览(104)

当我尝试测试Sidekiq的RSpec时,它将参数以字符串形式发送给方法。

例如:

我的RSpec

expect(User::RemoveAccess).to have_enqueued_sidekiq_job(user.id,user_account_ids)

这里的用户帐户ID是一个类似于USER_ACCOUNT_IDS=user.pluck(:Account_IDs)的数组

我的Ruby代码:

User::RemoveAccess.perform_async(user.id,user.pluck(:account_ids))

我在RSpec中收到的错误是:

expected to have an enqueued User::RemoveAccess job
         arguments: [12670, ["e012-40d-4f50-8d96-14"]]
       found
         arguments: [[12670, "e012-40d-4f50-8d96-14"]]

我不知道我在哪里搞错了,我有没有遗漏什么?

mpgws1up

mpgws1up1#

由于您在单个用户示例上而不是在活动记录集合上调用.pluck,因此发生了错误参数错误

如果您需要数组,则需要更改此设置

user.pluck(:account_ids)

对这件事

users.pluck(:account_ids)

相关问题