2013-12-19 1 views
0

개인적인 방법을 시험 할 때 여러 가지 의견이 분분하다. 나는 개인적인 방법의 테스트와 함께 defacto 협약은 무엇입니까 오늘으로 궁금 해서요. 그들을 테스트해도 괜찮습니까?사적인 방법을 테스트해도 괜찮습니까?

그렇지 않다면 왜 그렇게 많은 테스트 도구가 테스트 할 수 있습니까? 나는 scalatest를 사용하고 있으며, 거기에는 뭔가가 있습니다. 나는 이것이 어떤 상황에서는 꽤 유용하기 때문에 이것을 믿어야한다. 반면에 나는 빨강, 추천, 테스트 행위가 아니라 방법.

따라서이 혼란과 함께 누군가가 그의 경험과 지혜를이 문제에 관해 나눌 수 있는지 궁금합니다. 언제 그들을 시험하고 그것들을 피하는 것이 적절할까요? 일반적인 지침은 무엇입니까?

많은 감사합니다.

답변

0

"테스트 동작이 아닌 방법"은 좋은 접근 방법입니다. 단위 테스트에서 의미하는 것은 "사용자"관점에서 클래스를 테스트한다는 것입니다. 그리고 모든 개인적인 방법은 궁극적으로 공개 방법에서 호출해야합니다. 그렇지 않으면 왜 그들이 처음에 반에서 수업을 들었습니까?

요약하면 개인 메서드는 공용 메서드에서 간접적으로 테스트해야합니다.

+0

답변 해 주셔서 감사합니다. 그러나 개인적인 방법을 테스트하기 위해 대부분의 프레임 워크에서 특별한 지원이 존재 함을 어떻게 정당화 할 수 있습니까? 요점이 뭐야 ? – MaatDeamon

+0

또한 나는 개인적인 방법을 쓸 때 이상하게 느껴지고, TDD의이주기를 어떤 식 으로든 깨뜨리지 않으면 안된다는 것을 인정해야합니다. 개인적인 방법으로는 필자가 수동으로 테스트 할 것이고, 내 공개 메서드에 대해 실제 TDD를 적용하면서 원하는 것을 생성하는지 확인할 수 있습니다. 예 : 필자는 공개적 행동을 테스트 할 때 그리고 개인적인 방법을 수동으로 테스트 할 때 주어진 내용을 적용 할 것입니다. 나는 그것을 이상하게 생각한다. 하나는 TDD 기술을 사용하여 코드와 생각을 무너 뜨리는 데 많은 도움이되지만 개인적인 방법으로 오래된 습관으로 돌아 가야합니다. – MaatDeamon

+0

맞습니까? TDD주기를 깨뜨리지 말고 가장 좋은 방법은 테스트를 중단하는 것입니다. 더 구체적으로, 내 방법이 내 행동의 내부 단계를 실제로 나타내는 경우, 내 테스트는 모든 단계의 결과를 확인해야합니다. 예를 들어 "Given When Then"+ "And"및 "Keyword"를 사용하면 "결과 확인"또는 "조건"을 결합 할 수 있습니다. 따라서 "And"를 사용하여 다른 단계의 결과를 확인하여 모든 행동을 테스트 할 때 단계적으로 진행할 수 있습니다. 그러니까 어떤 의미에서 "다음"은 첫 번째 개인 메소드를 테스트하고 "And"는 두 번째 등등을 테스트합니다. – MaatDeamon