ActiveStorage测试中file_fixture_upload方法未定义问题排查
问题原因及解决方法
file_fixture_upload是Rails**系统测试(System Tests)**专属的辅助方法,你的代码属于控制器测试(功能测试范畴),这类测试对应的文件上传辅助方法是fixture_file_upload,这就是报错的核心原因。
修改步骤
直接把控制器测试中的file_fixture_upload替换成fixture_file_upload即可,参数保持不变:
# Pictures控制器测试修改后 post pictures_url, params: { picture: { fichier: fixture_file_upload("space_chen.jpg", "image/jpg"), individual: individuals(:one), shop_id: shops(:one).id, individual_id: individuals(:one).id } }, xhr: true # Documents控制器测试修改后 post documents_url, params: { document: { fichier: fixture_file_upload("find_shipment.pdf", "application/pdf"), title: 'title', shop_id: shops(:one).id, individual_id: individuals(:one).id } }, xhr: true
额外验证
确认测试文件路径正确:fixtures/files/space_chen.jpg和fixtures/files/find_shipment.pdf确实存在,fixture_file_upload默认会从这个目录读取文件。
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

