如何使用Aruba测试在主文件夹中创建文件

时间:2014-04-11 03:19:01

标签: ruby cucumber aruba

我希望用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

2 个答案:

答案 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会有帮助吗?嘲笑它,而不是担心修改你的真实文件系统。