2009-07-27 5 views
0

JUnit 내에서 마법사를 사용하여 TestCase 또는 TestSuite를 만들 수 있지만 메소드 시그니처 수정 또는 새로 추가 된 메소드와 같이 테스트중인 클래스를 수정 한 후에 코드를 동기화하는 방법을 알고 있습니다. My TestCases가 TestCases 내에서 변경된 메소드/매개 변수/메소드 서명을 동기화 (제거 또는 추가) 할 수 있기를 바랍니다.JUnit 테스트 케이스를 Eclipe에서 테스트중인 클래스와 동기화 할 수 있습니까?

나는 Google에서 아무 소용이없는 검색을 시도했는데 어쩌면 거기에 대한 일식 플러그인이 있습니까?

답변

1

생산 코드의 구조와 1-1 관계가있는 테스트는 테스트 냄새입니다. 프로덕션 코드를 기반으로 테스트를 생성하는 대신 (메서드 당 하나의 테스트) 시스템의 동작을 지정하는 것 (동작 당 하나의 테스트)으로 테스트를 작성하는 것이 훨씬 좋습니다. 당신이 모든 보기 이동의, 테스트를 작성하여 포인트를 동작을 지정하지 관하여 실현되면

http://blog.daveastels.com/files/BDD_Intro.pdf

에서 인용. 갑자기 각각의 프로덕션 클래스에 대한 Test 클래스를 가져 오는 아이디어가 어색하게 개로 제한됩니다. 그리고 자체 테스트 방법 ( 1-1 관계에 있음)을 사용하여 각 방법을 테스트하는 것에 대한 생각은 우스꽝 스럽습니다.

+0

Thx를 보내 주셔서 감사합니다. 잠시 동안이 질문을 게시 한 후 나는 행동을 기반으로 한 필기 시험이 나아갈 길이라는 것을 깨달았습니다. 지금은 단위 테스트를 동기화 할 필요가 없습니다.) 저는이 관점을 완벽하게 지원합니다 (단위 테스트 동작). 추가하면 메소드 이름에 테스트하는 동작이 포함되어 있기 때문에 테스트를 쉽게 읽을 수 있습니다. –

0

자동 리팩터링을 사용하여 메소드 서명을 변경하면 테스트 케이스 및 메소드를 호출하는 다른 모든 코드가 자동으로 업데이트됩니다.

새로 추가 된 메소드의 경우 테스트 클래스를 자동으로 업데이트하는 방법을 알지 못합니다.

3

이전에 언급했듯이 리팩터링이나 이동과 같은 리팩토링은 Eclipse 툴링을 사용하여 리펙토링하는 한 테스트 케이스에 자동으로 반영됩니다. 예를 들어 수동으로 이름을 바꾸지 않아도됩니다.

새로운 방법은 자동으로 테스트를 생성하는 것이 불가능합니다. 물론 생성을 제어하는 ​​곳과 테스트 케이스를 생성 할 수있는 곳에서 자동 생성 코드에 대한 몇 가지 예외가 있지만 "정상적인"수동 코드의 경우 스텁 (비어있는 메소드)을 제공하는 것이 가장 좋습니다. 그거?

더 좋은 방법은 도구 등의 소스 코드 내에서, 당신이 볼 수있는 nice Eclipse plugin이 일어나는 Cobertura 또는 Emma로, 어떤 코드가하지 않은 시험에 의해 덮여되고를 사용하여 code coverage을 추적하는 것입니다. 다음은 더 많은 테스트가 필요한 부분에 대한 보고서입니다.

+0

그래, 나는 코드 적용 범위를 넘어 뭔가가 있다고 생각하지만 어쨌든 그것을 할 것이라고 생각한다. 답장을 위해 –

관련 문제