2013-03-28 2 views
1

루비/오이를 사용하면 명시 적으로 fail("message")을 호출 할 수 있지만 다른 옵션은 무엇입니까?나는 오이 시나리오에서 어떤 결과를 얻을 수 있습니까?

내가 묻는 이유는 우리가 0을 가지고 있다는 것입니다 ... 우리의 테스트 데이터를 절대적으로 통제합니다. 우리는 우리가 데이터베이스에서 사용자를 가질 수도 있고 없을 수도있는 가장자리 사례를 테스트하는 오이 테스트를 가지고 있습니다. 명백한 이유로 우리는 테스트가 가치가 있기 때문에 테스트를 포기하고 싶지 않습니다. 그러나 우리의 데이터 세트는 그 엣지 경우를 테스트 할 수 없기 때문에 SQL 문이 빈 데이터 세트를 반환하기 때문에 실패합니다. 지금 당장은 이러한 테스트가 실패했지만 SQL 문에서 빈 데이터 집합이 반환되면 "no_data"또는 이와 유사한 내용을보고 싶습니다. 출력이

Scenarios: 100 total (80 passed, 5 no_data, 15 fail) 

과 같을 것이다 그래서 나는 skip("message") 기능이있는 경우 이미 구현 "생략"를 사용 기꺼이.

내 옵션은 무엇입니까? 그래서 우리는 현재 데이터에서 이러한 테스트에 대한 테스트 데이터가없는 것을 볼 수 있습니까? 이러한 수동 테스트를 만드는 것도 옵션이 아닙니다. 자동화를 통해 일주일 내내 실행해야하지만 실패와는 별개입니다. 실패는 결함을 의미하고, no_data는 테스트 가능한 상태가 아니라는 것을 의미합니다. 경고의 차이는 다음과 같습니다. 우리는이 엣지 케이스를 테스트하지 않았고 Alert : broken code입니다.

답변

2

'건너 뛰기'를 호출 할 수는 없지만 오류 메시지가 있거나 없으면 확실히 pending을 호출 할 수 있습니다. 나는 당신과 비슷한 상황에서 이것을 사용했습니다. 엄격한 모드로 실행하지 않는 한 보류중인 시나리오가 있으면 오류가 발생하지 않습니다. 내가 마주 치게 된 문제는 때로는 한 발자국이 잘못 입력되어 오이가 그것을 단계별 정의와 일치하지 않았기 때문에 계류중인 것으로 표시하게하는 것이 었습니다. 그런 다음 '합법적 인'보류 시나리오에서 바다 속에서 길을 잃었으며 우리가 발견하기 몇 주 전부터있었습니다.

+0

나는 또한 오이 보석 자체에서 summary.rb와 html.rb 파일을 분석 했으므로 테스트 스위트가 끝날 때 결과를 출력 할 때 "보류 중"테스트는 실제로 보류 대신 "no_data"를 표시합니다. 그것은 P.O. 읽다. –