3

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

2 回答 2

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/

于 2014-04-15T10:58:42.923 回答
1

会有fakefs帮助吗?不必担心修改您的真实文件系统,而是将其模拟出来。

于 2014-04-11T03:43:29.403 回答