나는 똑같은 일을한다고 믿는 훨씬 간단한 구현으로 복잡한 메소드를 대체 할 것이라고 말합니다.이전 코드를 사용하여 유닛 테스트에서 결과를 확인하십시오.
단위 테스트를 사용하여 이전 코드를 클래스로 복사하면 두 결과가 동일하다고 주장 할 수 있습니까?
감사합니다.
나는 똑같은 일을한다고 믿는 훨씬 간단한 구현으로 복잡한 메소드를 대체 할 것이라고 말합니다.이전 코드를 사용하여 유닛 테스트에서 결과를 확인하십시오.
단위 테스트를 사용하여 이전 코드를 클래스로 복사하면 두 결과가 동일하다고 주장 할 수 있습니까?
감사합니다.
예. 시작하는 것이 좋은 방법입니다.
하지만 거기서 멈추지 마십시오.
또한 이전 코드에서 사용한 "최종 답변"이있는 테스트를 작성하십시오.
잘못되었거나 유지 보수가 불가능하기 때문에 단위 테스트에서 이전 코드를 삭제해야 할 수도 있습니다.
테스트에서 두 값을 모두 반환하면 동일한 값을 반환 할 수도 있습니다. 예 :
그런 다음 이전 방법에서 천천히 "스스로 자유롭게"설정할 수 있습니다.
당신이 소스 제어를 사용하는 가정, 여기에 내가 할 줄 작업은 다음과 같습니다
1 단계의 일환으로 수도 그래서 당신은 당신의 주요 목표는 기존 동작을 유지하기 위해 단지 인 경우가 뱉어 어떤 가치를 볼 수있는 기존의 코드에 대한 작은 "하네스"를 쓰고 싶어요. 중요한 것은 이전 구현을 통과하는 테스트가 있다는 것입니다.
3 단계의 이유는 중요한 코드를 놓친 경우 이전 코드에 대한 테스트를 제출 한 곳의 변경 사항과 동기화하여 새 테스트를 추가하고 작동하는지 확인한 다음 다시 동기화하십시오 필요하다면 새 구현을 수정하여 작동하는지 확인하십시오.
확실히 아닙니다. 이전 코드가 처리하는 케이스, 경계 조건, 오류 등 각각을 다루는 테스트가 있어야합니다. 테스트가 좋은 경우 새 코드는 테스트가 통과 할 때와 동일합니다.
이전 코드를 확실하게 리팩터링하고 제거 할 수 있다는 것은 단위 테스트의 주요 이점 중 하나입니다.
는
먼저 테스트를 작성
으로 이해하고 이전 코드가다음 새 코드로 이전 코드를 교체하고 있는지에게 그것을 만들 재 작성하기 전에를 통과해야합니다 것
예를 들어 코드를 도려내는 테스트에서 오래된 큰 방법을 남겨 두는 것이 의미가 없습니다. – Ryu
유지 관리를 수행하고 새로운 단위 테스트 출력을 수정해야 할 때 더욱 그렇습니다. 요구 사항. 재 작성의 요점은 이전 소프트웨어를 제거하는 것이 었습니다. TestCase에 포함시키지 마십시오. –