我希望用Aruba和Cucumber测试一个Ruby命令行应用程序。该应用程序有一个开关,用于在当前用户的主文件夹中创建一个点文件(例如.my_app)。在运行Aruba测试时,我不希望应用程序在用户的主文件夹中创建文件。
我正在寻找一种在步骤定义中创建临时工作目录的方法,该目录将创建临时文件夹并在运行命令行应用程序时修改路径标志。或者是否有一些在Aruba中构建的功能已经提供了这样的东西?
样本测试:
Feature: Initialize for user
Scenario: Create a dot file in the user's home directory
When I run `touch ~/.my_test_file`
Then a file named "~/.my_test_file" should exist
答案 0 :(得分:3)
在env.rb
:
Before do
set_env 'HOME', File.expand_path(File.join(current_dir, 'home'))
FileUtils.mkdir_p ENV['HOME']
end
如果您在Aruba中使用此功能,aruba将使用<project_root>/tmp/aruba/home
。然后,Aruba会为您提供一些很好的黄瓜步骤来验证文件的创建,存在等等。
编辑:我在博客上写了一篇完整的文章:http://ariejan.net/2014/04/15/testing-home-with-cucumber-and-aruba/
答案 1 :(得分:1)
fakefs
会有帮助吗?嘲笑它,而不是担心修改你的真实文件系统。