내가 다음 의사 코드로 정의 된 클래스 및 방법을 말해봐mock 또는 스텁이 유효하다는 것을 확인하는 방법은 무엇입니까?
class Book
def quick_info
return title + " " + author
end
end
나는의 그루터기를 만드는 것이 Book
클래스를 사용하여 일부 다른 클래스의 단위 테스트를 쓰고 있어요 경우 메소드 호출은 Book.quick_info
입니다.
quick_info
메서드의 이름이 short_description
으로 바뀐 경우와 같이 Book
클래스를 변경해야하는 경우 문제가 발생할 것입니다. 내 단위 테스트는 여전히 quick_info
을 사용하게 될 것이고 실제로 테스트가 실패 할 때 내 테스트가 잘 통과하는 것처럼 보일 것입니다.
내 테스트의 스텁/모의이 실제로 올바른 클래스와 메소드로 구성되었는지 확인하기 위해 실행할 수있는 것이 있는지 궁금합니다. 어쩌면 이런 일이 계속해서 일치하는지 확인하기 위해 연속 통합 서버에서 실행될 수 있습니까?
안녕하세요 .... 이제는 나에게 생각이 생겼습니다. 존재하지 않는 mock/stubbed 메소드를 생성 할 수 있습니까? 그렇지 않다면이 모든 질문은 논박의 대상입니다.
편집 : 난 그냥 RSpec에 2 그리고 나는 내가 Book
인스턴스를 생성하고 i_dont_exist
라는 메서드를 작성하고 내가 잘 호출 할 수 있습니다 알고 사용하여이 밖으로 시도
. 그래서 제 질문은 여전히 있습니다. 내 모의 객체/스텁이 실제로 존재하는 클래스/객체와 일치하는지 확인하는 방법이 있습니까? 그것은 기존 개체를 조롱하는 당신을 필요로하지만
Mocha::Configuration.prevent(:stubbing_non_existent_method)
:
언급 한대로 문제는 외부 서비스가 대개 조롱을 받았다는 것입니다 (예 : 웹 서비스). 그런 경우 단위 테스트가 없습니다. 하지만 아마도 통합 테스트의 적용을 받아야할까요? 'Book'에 관해서는 내 예제를 명확히하기 위해 사용되었지만 나쁜 예라고 생각합니다. – Fendo