2014-07-13 1 views
2

Highline 보석을 기반으로 한 대화 형 CLI 응용 프로그램이 있습니다. Aruba을 사용하여 오이 테스트를 위해 대화식으로 실행할 수 있습니다. 하지만 스텁과 mock을 사용할 수는 없습니다. 왜냐하면 Aruba는 내 앱을 하위 프로세스로 시작하기 때문입니다. Aruba::InProcess 기능을 사용하려고하면 상호 작용이 없어집니다.오이와 상호 작용하는 루비 앱을 스텁하고 모의하는 방법?

더 이상 알 수 없습니다. 그런 앱을 어떤 방법으로 테스트 할 수 있습니까?

답변

0

좋아, 나는 그것을 잡는다 : 오이는 스텁과 모의에 관한 것이 아니다. 그리고 대화 형 CLI 응용 프로그램이 아마도 가장 좋은 예일 것입니다. Aruba를 통한 Cucumber는 상호 작용이 필요한 동안 하위 프로세스에서 앱을 시작합니다. 그리고 그것에 영향을 미치는 유일한 방법은 환경 변수 사용법입니다. 예를 들어, 변수를 'production'/ 'development'/ 'test'값으로 설정하면 프로덕션 대신 DB 테스트를 사용하여 앱 구성을 변경할 수 있습니다.

0

정확히 스텁하고 모의하고 싶습니까?

오이는 주로 통합 테스트, 즉 최종 사용자의 관점에서 테스트에 사용됩니다. 최종 사용자는 인터페이스를 통해 앱을 사용하기 때문에 오이는 앱 내부를 스터 빙하고 조롱하는 쉬운 방법을 제공하지 않으며 적어도 오이가 아닌 앱을 사용해서는 안됩니다.

rspec으로 오이 또는 단위 테스트를위한 조명기를 사용해보십시오.

제 3 자의 응답을 스텁 아웃하려면 webmock gem을 사용하여 요청을 차단하고 응답으로 응답기를 보내거나 파일 시스템에 대해 동일한 작업을 수행 할 수 있습니다.

+0

원격 플랫폼 API 또는 파일과의 상호 작용을 스태핑하고 싶습니다. 시스템을 예로들 수 있습니다. 원격 API 상호 작용으로 인해 사용자 조치와 결과 리턴 사이에 오랜 시간이 걸린다. 이 테스트는 유용하지 않습니다. – Michael

+0

내 질문에 설명 된 상호 작용 문제로 인해 웹 모크 및 fakefs를 사용할 수 없습니다. – Michael