단위 테스트 사례에 대한 Java 문서 주석 작성


11

제 생각에는 단위 테스트 사례 자체가 코드의 문서 역할을합니다. 우리 회사는 단위 테스트 사례 위에 상세한 Java 문서 주석을 작성하기를 원합니다. 그렇게해야합니까? 당신은 그런 의견을 쓰십니까?


테스트 코드가 잘 작성되고 읽을 수 있다고 가정하면 테스트 코드에서 이러한 종류의 주석의 주요 값은 의도에 대한 진술입니다. 이는 코드 검토 자에게, 심지어 몇 년 안에도 매우 유용 할 수 있습니다. 작성된 코드를 판단하는 것은 수행해야 할 작업을 수행하거나 테스트 대상을 테스트하는 것입니다. 둘째, JAVADOC 또는 간단한 스크립트와 같은 시스템을 사용하여 코드에서 테스트 이름과 주석을 긁어내어 어떤 테스트를 수행하고 있는지에 대한 간단한 문서를 작성할 수 있습니다.
척 반 데르 린덴

답변:


8

내가하는 일은 JAVADOC-comment입니다.

  • 클래스는 어떤 클래스가 테스트되는지를 나타냅니다 (해당 주제에 대한 모범 사례에서는 테스트 케이스 이름이 클래스 이름 + "Test"또는 + "TestCase"여야 함). 이는 {@link XXXClass} JAVADOC 주석을 사용하여 수행됩니다.

  • 테스트 할 메소드를 나타내는 메소드 ({@link XXXClass # method1}) 때로는 모든 경로를 올바르게 테스트하기 위해 클래스의 한 메소드에 대해 여러 테스트 메소드가 필요합니다. 그것이 일어날 때, 나는 내부에서 테스트중인 경로를 나타내는 하나의 추가 줄을 씁니다 (그러나 나는 한 줄 규칙에서 벗어나지 않습니다)

그 외에도 다른 의견은 없습니다. 다른 곳에서 관심을 갖기 위해 Cobertura 와 같은 코드를 사용하여 예쁜 코드 적용 그래픽을 생성하고 행복하게 만들 수 있습니다 :-)

추가 참고 사항 : 단위 테스트 사례를 언급하고 있습니다. 통합 테스트 사례에 대해 이야기하는 경우 진행 상황을 설명하기 위해 1-2 줄 이상이 필요할 수 있습니다 ...



0

Javadoc 주석은 별도의 참조 문서에서 추출 및 형식화 할 수 있으며 단위 테스트는 불가능합니다. 또한 단어로 작성하는 내용이 실제 코드와 다를 수 있으며 일반적으로 실제 예상되는 동작을 단어로 설명합니다. 버그를 찾는 방법 중 하나는 문서가 실제 코드와 일치하지 않는 경우 문서를 비교하는 것입니다.

단위 테스트는 문서화가 아니라 테스트를위한 것입니다. 문서로 유닛 테스트를 사용하는 것은 잘못되어 있어서는 안됩니다.


2
코드를 문서화하는 데 유용한 단위 테스트 모음이 매우 유용합니다. 그것들은 누군가의 코드 어떻게 사용 되어야 하는지에 대한 참조 구현과 코드 가 그렇게 사용될 때 코드가 올바르게 동작한다는 증거를 제공합니다.
Bill Michell

@Bill-그것에 대한 논쟁은 없습니다. 적절한 문서를 대체 하지 않습니다 .
littleadv

문서의 대상에 따라 다르지만 경우에 따라 정확합니다.
Bill Michell

1
이상적으로 단위 테스트는 시스템의 유일한 문서가 아니어야하지만 실제로는 10 개 중 9 개 프로젝트가 레거시 코드를 사용 하여 문서 를 작성하는 것이 운이 좋을 수도 있습니다 . 그리고이 경우 실제 코드와 완전히 일치하지 않는 많은 문서에 대해 단위 실행 및 통과 단위 테스트를 선호합니다. (예, 심지어 Javadoc도 가능합니다.)
Péter Török

@ PéterTörök 그래 ... 나는 여러 다른 고용주, ​​아주 유명한 회사들 사이를 옮겼습니다. 많은 레거시 코드. 내가 쓴 유일한 단위 테스트 . 그래서 당신은 매우 운이 좋았습니다. 당신이 본 것이 어디에서나 일어난다 고 가정하지 마십시오. 그리고 단위 테스트가 있더라도 누가 맞다고 말했습니까? 누가 자신이해야 할 일을 다루었다고 말했습니까? 누가 기대되는 결과가 무엇인지 말했습니까? 단위 테스트가 동기화되지 않았다고 가정하는 이유는 무엇입니까? 그들이 "통과"했기 때문에? 무의미한 말.
littleadv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.