나는 순수 루비로 작성된 커맨드 라인 (NON-RAILS) 애플리케이션을 가지고 있으며 오이와 RSpec을 통해 몰아 낸다. lib, bin, spec 및 feature 디렉토리의 일반 응용 프로그램 계층을 따릅니다.RSpec을 사용하여 순수 Ruby bin/my_app.rb 애플리케이션을 테스트 하시겠습니까?
지금까지 필자는 실패한 오이 피쳐/시나리오를 작성하고 지원하는 lib 파일을 제거하기 위해 RSpec으로 내려간 다음 시나리오를 통과시키는 전통적인 프로세스를 따라갔습니다.
"bin/my_application.rb"의 주 응용 프로그램 시작 지점을 몰아 낼 때 불행히도 이것은 그리 밝지 않습니다. 필자가 가장 중요하게 생각하는 것은 RSpec의 클래스를 설명하지 않고 애플리케이션 클래스를 관리하고 명령 행 매개 변수와 옵션을 통해 초기화하는 루비 스크립트 다.
"bin/my_application.rb"는 명령 줄 옵션을 구문 분석하고 기본 응용 프로그램 클래스에 이니셜 라이저 옵션으로 전달하는 작은 쉘 실행 래퍼입니다. bin 스크립트의 동작 (예 : MyApp.should_receive (option_a) .with (매개 변수))을 테스트하고 싶습니다.
제안/생각/조언? 이것은 커맨드 라인 루비 스크립트 동작을 수행하기위한 일반적인 테스트 전략입니까?
미리 감사드립니다.
command_runner.rb의'if args [0]'등으로하지 말아야합니까? – johnf
죄송합니다. 당신 말이 맞아요. 어느 쪽이든 작동해야합니다 ... 고마워 주셔서 감사합니다. – bcarlso