当我尝试测试sidekiq的rspec时,它会将params作为字符串发送到方法。
例如:
我的rspec
"expect(User::RemoveAccess).to have_enqueued_sidekiq_job(user.id,user_account_ids)
">
这里的用户帐户id是一个数组类似user_account_ids=user.pull(: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"]]
我不确定我哪里错了,有没有遗漏什么?。
发生错误的参数错误,因为您在单个用户实例而不是活动记录集合上调用.pull
如果你想要一个数组,你需要更改这个
user.pluck(:account_ids)
到此
users.pluck(:account_ids)