2010-02-13 4 views
0

Java 클래스에서 JUnit @Test 코드를 제거 할 수 있습니까? 테스트 코드를 테스트 할 소스 코드와 동일한 파일에 넣었습니다. (예, 좋지는 않지만 테스트 코드를 계속 유지하려면 인센티브입니다)Java 클래스에서 테스트 코드 제거

나는 좋겠다. 코드에서 테스트 메소드를 제거하고, 바이너리를 빌드하고 전개하십시오.

감사합니다.

답변

0

제가 알고있는이 작업을 수행 할 구체적인 도구가 없습니다.

좋아하는 텍스트 편집기/IDE로 "당신의 핥기"를 수정하고 변경하기가 어려울 것입니다. (그리고 아마도이 운동은 당신에게 좋은 연습/좋은 스타일에 더 많은주의를 기울일 것을 가르쳐 줄 것입니다 ...)

2

아니요, 어떻게 할 수 있는지 모르겠지만 왜 그렇게 원하지 않는지 말할 수 있습니다. 우선이 방법을 사용하십시오.

  1. 테스트를 제거 할 수는 있지만 테스트 라이브러리를 참조하는 모든 가져 오기는 어떻게됩니까?
  2. 테스트에서 호출 할 수있는 개인 메서드는 무엇입니까? 그들은 @Test으로 표시되지 않습니다.
  3. 처음부터이 모든 문제를 해결해야하는 이유는 무엇입니까? 모든 IDE에는 테스트 클래스를 자동으로 생성하기위한 도구와 그 사이를 전환하기위한 바로 가기가 있습니다.
  4. 테스트 주석이 실수로 클래스 메소드 중 하나에 적용된 경우 어떻게해야합니까?
  5. 클래스 메서드 중 하나에서 실수로 테스트 메서드가 호출되면 어떻게됩니까?

이들은 내가 생각할 수있는 이유 중 일부입니다 ... 왜 처음부터 문제를 피할 수 없습니까?

0

바이트 코드를 암호화하는 것을 목적으로하는 것이 유용하지 않은 물건을 제거하는 경향이있는 일부 tools이 있습니다.

그러나 나는 그런 조언을하지 않을 것입니다. 코드를 테스트 한 상태로 유지하도록 유도하는 방법을 찾은 것이 좋습니다 (훌륭한 사실!). 그러나, 당신이 알았 듯이, 당신이 선택한 방식이 그다지 좋은 것은 아닙니다. 테스트 코드를 코드 자체와 별도로 유지하는 데는 여러 가지 이유가 있습니다. 총알을 물고 2) 새로운에 전에 @Test를 가지고 아무것도 이동 테스트를위한 클래스의 병렬 세트를 만들

1) :

(한 번에 하나 개의 클래스) 내가 할 것입니다 classes 3) 테스트를 컴파일/실행하지 않는 다른 프로그램으로 옮깁니다.

그런 다음 코드 커버리지 도구 (나는 Cobertura을 좋아하지만 다른 것들도 있습니다)를 사용하여 테스트 한 코드의 양을 시각적으로 보여줍니다. 코드를 실행하기 전에 테스트를 작성한다는 아이디어를 추가하면 잘 수행됩니다.

기본적으로 이것은 매우 공식화 된 작업 방식입니다. 코딩과 코드 커버리지 연대를 따르고 커버리지가 불량한 곳을 고칠 경우 테스트 코드가 클래스에있는 것처럼 쉽게 찾을 수 있습니다. 모든 습관이 있습니다. 좋은 습관이 나쁜 것보다 낫습니다 :-)