우리는 오이에 대한 단계 정의를 테스트하려고합니다. 우리가 점검 할 수 있기를 원하는 것은 실제로 실패 할 것으로 예상되는 테스트가 실패한다는 것입니다. 이를 위해 우리는 실패 할 것으로 예상되는 시나리오를 작성하여 테스트 스위트에 추가하려고하지만, 실패 할 경우에만 "통과"할 수 있도록 태그를 붙이거나 표시합니다. 어떻게 접근 할 것인가?오이에서 실패한 단계와 실패를 예상하는 방법은 무엇입니까?
5
A
답변
0
음수 상태를 테스트해야합니다. 실패 단계는 단순히 통과 단계의 역입니다. 따라서 다음과 같이하십시오.
Then /i should not be true/ do
some_value.should_not be_true
end
이렇게하면 오류가 있는지 테스트 할 수 있습니다. 당신은 또한 예외 등을 잡아와 블록 실제로 당신은 단순히 부정적인 결과가 아니라 긍정적 인 결과를 테스트하는 테스트 케이스의 테스트를 반대하는 예외를
lambda do
something_that_horks
end.should raise_error(Specific::Error)
을 던져 않는 것을 확인할 수 있습니다.
-1
-w
스위치를 오이 (Cucumber) 명령에 전달합니다.
일반 형식을 출력하지만 모든 테스트 사례가 실패했는지 여부를 자세히 설명하는 요약을 제공하고 전달 된 테스트 사례가 어느 것인지를 지정합니다.
0
이것은 꽤 복잡한 예이지만 최종 결과는 오이 시나리오가 실패 할 것으로 예상하는 정말 깨끗한 방법입니다. 이것들은 제가 작업하고있는 프로젝트의 작은 구성 요소들입니다. 누락 된 데이터가있는 사용자를 만드는 이유는 내 사용자 모델에 유효성 검사기가 있기 때문입니다. 모든 소스 코드는 here입니다.
기능/step_definitions/before_step.rb
Before("[email protected]") do
def assert_cucumber(assersion, msg = "an error was thrown")
assert(assersion == true, msg)
end
end
Before("@fails") do
def assert_cucumber(assersion, msg = "an error was thrown")
assert(assersion == false, msg)
end
end
기능/step_definitions/user_step.rb 여기 목적이 아닌 테스트하는 것입니다
Given /^a user with$/ do |params|
params = params.rows_hash
unless User.find_by({username: params[:username]})
assert_cucumber(User.new(params).save, "could not create user")
end
end
기능/user.feature
Scenario: check if userers exsist
Given a user with
| username | johnsmith |
| email | [email protected] |
| password | password |
Then a user with username "johnsmith"
@fails
Scenario: create user with missing data
Given a user with
| username | johndoe |
Then a user with username "johndoe"
관련 문제
- 1. TeamCity에서 오래된 빌드 실패를 정리하는 방법은 무엇입니까?
- 2. rcov 및 오이에서 파일을 제외하는 방법은 무엇입니까?
- 3. Safari에서 webScoket 실패를 조사하는 방법은 무엇입니까?
- 4. 세션 시간 초과를 예상하는 방법은 없습니까?
- 5. '세션'에 대해 '='메서드가 실행될 것으로 예상하는 방법은 무엇입니까?
- 6. ctypes가있는 구조체에 대한 포인터를 예상하는 c-function을 호출하는 방법은 무엇입니까?
- 7. 넌스 검증에 실패한 가장 좋은 방법은 무엇입니까?
- 8. renameTo()가 실패한 이유를 찾는 방법은 무엇입니까?
- 9. Unit Test에서 MFC 기반 GUI 함수의 실패를 시뮬레이트하는 방법은 무엇입니까?
- 10. 레일즈 기능 테스트에서 포스트가 실패한 이유는 무엇입니까?
- 11. Capybara와 오이에서 할당()을위한 대안?
- 12. 오이에서 대화 상자를 테스트하는 방법?
- 13. pthread_mutex_unlock 실패를 어떻게 처리합니까?
- 14. Maven은 실패를 구축 티코
- 15. OCMock - nsarray의 내용을 예상하는 방법
- 16. Magento의 번역이 실패한 이유는 무엇입니까?
- 17. 오이에서 다른 레일 인스턴스를 어떻게 시작하나요?
- 18. rspec에서 어떻게 뷰 실패를 강제합니까?
- 19. 성공/실패를 나타내는 여러 반환 값입니다.
- 20. C++에서 정적 초기화 순서 실패를 재현
- 21. ASIHTTPRequest 완료된 요청 및 실패한 요청을 인식하는 방법은 무엇입니까?
- 22. 실패한 웹 서비스 호출을 다시 시도하는 방법은 무엇입니까?
- 23. 모든 재시도가 실패한 경우 작업 카운터를 줄이는 방법은 무엇입니까?
- 24. 배포 관련 질문 - 배포 중에 실패한 티켓을 처리하는 방법은 무엇입니까?
- 25. 예전 Python과 정상적으로 실패한 Python 2.6+ 스크립트를 작성하는 방법은 무엇입니까?
- 26. 유효성 검사가 실패한 후 입력 필드를 재설정하는 방법은 무엇입니까?
- 27. JAAS를 사용하여 플렉스 클라이언트에 실패한 인증 이유를 나타내는 방법은 무엇입니까?
- 28. quickcheck로 테스트 속성에 실패한 이유를 표시하는 방법은 무엇입니까?
- 29. Blackberry 실패한 경우 연결을 다시 시도하는 가장 좋은 방법은 무엇입니까?
- 30. BizTalk에서 라우팅 실패를 방지하는 방법
상태가 사실이 아니라면 테스트가 실패 함을 테스트하는 것입니다. 즉, 우리는 테스트 단계가 아니라 단계를 테스트하고 있습니다. – kerkeslager