Rails Minitest 处理文件创建

问题描述

应用程序生成 .png 文件,这些文件会写入应用程序的公共目录。

IO.binwrite("public/ddx/#{@item.id}/c_#{@item.section_id}_#{@item.aisle_id}.png",png.to_s)

但是测试该方法会导致测试无法处理 public 目录

Errno::ENOENT: No such file or directory @ rb_sysopen - public/ddx/1622972374/c_2_31.png

1622972374 代表 item.id

如何强制 minitest 处理这种情况?

解决方法

不要问minitest怎么写,先改代码,让图片路径两边都能用

image_path = Rails.root.join('public','ddx',...)
IO.binwrite(image_path,...)