2011-03-24 3 views
0

더 나은 코드 작성을 지원하기 위해 Google 팀의 도구로 PMD을 설정하는 중입니다. 기본적으로 저는 Ant scripts을 만들고 모든 사람들이 사용할 수 있도록 몇 가지 규칙을 설정하려고합니다.JUnit 테스트를 위해 어떤 PMD 규칙을 활성화해야합니까?

는하지만 지금 나는이 문제에 충돌 : 나는 내가 우리의 주요 소스 코드에 적용되는 동일한 규칙을 사용하지 않으 JUnit tests쓰기

. junit 테스트에서 String rules (string dupliates 또는 이상한 인스턴스 생성과 같은)에 대해서는별로 신경 쓰지 않습니다.

내 질문은 다음과 같습니다

  1. 는 내 측면에 결함이 내가 더 잘 JUnit 테스트를 쓰기 시작해야합니까?
  2. 일부 string/design/finalizers 규칙을 사용하지 못하는 두 번째 규칙 집합을 제공해야합니까?

답변

2

두 번째 옵션 - 내 테스트에 대해 PMD를 실행하지 않습니다. PMD는 몇 가지 JUnit 특정 규칙을 제공 할 수 있습니다. 나는 확실히 테스트 코드에 대해 별도의 룰셋을 사용할 것이다. 나는 조건부/루프를 사용하는 대신에 더 많은 String 리터럴과 특정 것을 기대한다. 결국, 나는 테스트하려고하는 코드를 복제하고 싶지 않습니다.

+0

테스트 용으로 다른 룰셋 구성을 설정합니다. 거기에 몇 가지 코드 중복 및 일부 코드가 혼란스럽게 코드 냄새로 볼 수 없습니다. – cringe

1

두 가지. 왜 기존 규칙을 사용하지 않는 이유는 무엇입니까? (특별 요구 사항?). 그리고 두 번째 예 물론 단위 테스트도 좋은 품질을 가져야합니다. 단위 테스트는 생산 코드를 테스트하므로 최소한 프로덕션 코드와 동일한 품질을 가져야합니까?

+0

아, 나는 혼자서 새로운 규칙을 작성하지 않고 기존 규칙 만 선택합니다. 내 프로젝트에 몇 가지 규칙이 필요하지 않습니다. 예를 들어 j2ee 규칙을 사용하지 않도록 설정할 수 있습니다. 또한 일부 규칙을 비활성화하지 않으면 기존 코드베이스에서 수천 가지 경고가 발생합니다. – cringe

+0

두 번째 점에 대해서, 단위 테스트에서 높은 품질을 원하지만 예를 들어 객체를 텍스트 형식으로 내보내는 클래스를 테스트 할 때 내 assert 문에서'Strings'를 많이 사용하여 확인할 것입니다 데이터가 올바르게 내보내지고 PMD가 문자열 최적화에 대한 많은 경고를 제공하면됩니다. 그것은 내가 단위 테스트 품질에 많은 영향을 미치지 않을 것이라고 생각한 것입니다. – cringe

관련 문제