2014-04-11 1 views
3

Aruba와 Cucumber를 사용하여 Ruby 명령 줄 응용 프로그램을 테스트하고 싶습니다. 응용 프로그램에는 현재 사용자의 홈 폴더에 도트 파일 (예 : .my_app)을 만드는 스위치가 있습니다. Aruba 테스트를 실행할 때 응용 프로그램이 사용자의 홈 폴더에 파일을 생성하지 않도록하는 것이 좋습니다.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 

답변

3

:이 아루바와 함께 사용하는 경우

Before do 
    set_env 'HOME', File.expand_path(File.join(current_dir, 'home')) 
    FileUtils.mkdir_p ENV['HOME'] 
end 

, 아루바는 <project_root>/tmp/aruba/home을 사용합니다. 내 블로그에 전체 쓰기까지했다 : http://ariejan.net/2014/04/15/testing-home-with-cucumber-and-aruba/

+0

좋은 해결책. Windows 사용자가 테스트를 실행할 수 있도록이 솔루션을 크로스 플랫폼 솔루션으로 만드는 방법에 대한 의견이 있으십니까? – sutch

1

겠습니까 fakefs 도움? 실제 파일 시스템을 수정하는 것에 대해 걱정하는 대신 그것을 조롱하십시오. 당신의 env.rb에서

+0

FakeFS 스크립트에 의해 사용되지 않습니다 때 스크립트 아루바는, 존재, 생성 된 파일을 확인하기 위해 몇 가지 좋은 오이 단계 등

편집을 제공합니다 Cucumber/Aruba의 backticks에서 실행됩니다. – sutch