gpt4 book ai didi

ruby-on-rails - 如何生成用于单元测试的临时文件?

转载 作者:数据小太阳 更新时间:2023-10-29 08:43:58 24 4
gpt4 key购买 nike

要测试的方法允许向用户添加的包含数据的其他文件添加路径

例如,用户可能会在 /workspace/data 目录中存储一个名为 data.txt 的文件。我们希望将此目录的路径添加到一个名为 DATA_PATH 的现有数组中。

方法:

def add_custom_path(path)
DATA_PATH.unshift(path)
end

path 是 Rails 应用程序中用户存储文件的位置。

gem 使用test-unit

问题:

有没有办法在某个目录下临时生成一个文件,运行一个assert_not_empty测试,然后让文件消失?

我没有为 gems 编写测试的经验,因此非常感谢任何指导。

最佳答案

The .create and .new methods of Ruby's Tempfile take a second argument which is the directory you want the file to be in , 当临时文件的 File 对象被垃圾回收或 Ruby 退出时,由 Tempfile 创建的文件将被自动删除。所以你可以创建一个临时文件,

tempfile = Tempfile.new('filename', 'directoryname')

写入它,进行测试并让 Ruby 为您清理它。

请注意,第一个参数不是文件的完整非限定名称,而是 Tempfile 添加了消除歧义字符的部分,因此您可以安全地在测试套件中多次执行此操作。

此外,如果您需要文件具有特定的后缀,您可以执行例如

tempfile = Tempfile.new(['filename', '.rb'], 'directoryname')

关于ruby-on-rails - 如何生成用于单元测试的临时文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37578488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com