Rubyスクリプトを使用して誤ってアプリケーションから削除されたユーザのレコードとUserGroupsを削除前に複製する作業をしています。配列を反復処理し、オブジェクトの属性が一致するかどうかをチェックする方法
私は両方のオブジェクトをループしていますが、今は属性が一致することをどのようにアサーションするかを考えようとしています。
私は
assert_equal archived_user_groups, deleted_user_groups
を試してみましたが、それはオブジェクトではありません属性がアサートされ、それが失敗しました。
私は配列をループし、その属性(user_id、group_id)が同じインデックス(0,1,2、...)のすべてのオブジェクトで同じであることを確認しようとしています。 each_with_index
はこれに適しており、どのように実装されますか?
archived_user_groups_test.rb:
def test_user_with_user_groups
user = users(:employee_bb)
deleted_user_groups = user.user_groups.sort_by{ |u| [u.user_id, u.group_id] }
user.archive!
archived_user_groups = ArchivedUserGroup.where(user_id: user.id).sort_by{ |u| [u.user_id, u.group_id] }
deleted_user_groups.each do |ug|
archived_user_groups.find do |attribute_names, attribute_values|
assert_equal archived_user_groups, deleted_user_groups
end
end
end
'archived_user'は' archived_user_groups'ですか? 'archived_user'はどこにも定義されていないからです。これは私の頭を少し上回っているので、私はそれを分解しようとしていますが、一見すると未定義のメソッド 'attributes 'が投げられています。 – VegaStudios
@VegaStudiosそこに誤字がありました。 'archived_user_groups'の周りに配列を削除しました。 –
Minitestは' expect'を使用していますか、それともRSpecメソッドですか? – VegaStudios