나는 항상 작업 코드를 다시 작성하는 것에 회의적이었습니다. 포팅 코드도 예외는 아닙니다. 그러나 TDD와 자동 테스트의 출현으로 코드를 다시 작성하고 리팩토링하는 것이 훨씬 합리적입니다.
오래된 코드를 이식하는 데 사용할 수있는 TDD 도구가 있는지 아는 사람이 있습니까? 이상적으로는 다음을 수행 할 수 있습니다.
- 오래된 코드에 대한 언어 독립적 단위 테스트를 작성하십시오 (또는 버그를 발견하면 실패합니다!).
- 실패한 다른 코드베이스에서 단위 테스트를 실행하십시오.
- 이전 코드를 보지 않고 테스트를 통과하는 새 언어로 코드를 작성하십시오.
대안은 1 단계를 "언어 1의 단위 테스트 작성"과 "포트 단위 테스트를 언어 2로 작성"으로 나누는 것인데, 이는 필요한 노력을 크게 증가시키고 이전 코드베이스의 유지 보수가 중단 될 경우 정당화하기 어렵습니다. 포트 (즉,이 코드 기반에서 지속적인 통합의 이점을 얻지 못함).
편집 : StackOverflow 에서이 질문 에 주목할 가치가 있습니다.
expect
. stdin 및 stdout을 사용하여 파이프와 통신하는 Unix 스타일의 레거시 시스템이있는 경우 해당 도구를 사용할 수 있습니다. 실제로 어떤 스크립팅 언어로도 테스트하기가 매우 쉽습니다.
legacy language x
로 수행되기 때문에 "레거시"라고 말했습니다 fancy new language y
. 유닉스에 대해 아무 것도 암시하지 않았습니다!
expect
테스트를 구현 하는 데 사용 하십시오.