2013-10-20 1 views
0

다음의 굵은 글씨체는이 유명한 Stackoverflow question에 언급되어 있습니다. 단위 테스트를 통해 코드를 빠르게 변경할 수 있습니다. 테스트를 실행했기 때문에 이제는 작동한다는 것을 알 수 있습니다. 필요한 변경을 수행하면 테스트가 다시 작동해야합니다. 이렇게하면 시간이 절약됩니다.단위 테스트로 코드를 더 빨리 변경할 수 있습니까?

제 경우에는 파이썬 2.7에서 프로그램을 작성했습니다. 이제 PyUnit을 사용하여 테스트를 작성하기 시작했습니다. 이 테스트는 다른 파일에 존재할 다른 클래스 ("unittest.TestCase"에서 파생 됨)가 될 것입니다. (처음에는 개발이 시작되기 전이나 개발 중에 작성되어야한다는 것을 몰랐습니다.)

테스트를 작성하면서 궁금해했습니다. 프로그램 코드를 수정하고 테스트를 다시 실행 한 경우 테스트가 변경되지 않았기 때문에 테스트가 변경되지 않고 계속 작동해야합니다 (위의 내용은 테스트를 변경하여 작동하도록해야 함을 나타냅니다.) 테스트가 아닌 변경된 프로그램 코드입니다.

위의 문장의 마지막 문장이 의미가되는 것을 이해하지 못합니다. 나는 그것을 이해하는데 나를 도울 수있는 누군가를 찾을 수 있기를 바란다.

감사합니다.

+0

"필자는 필자가 Python 2.7로 프로그램을 작성 했으므로 이제 PyUnit.j를 사용하여 테스트를 작성하기 시작했습니다."괄호 안에있는 주석을 암시 할 때 첫 번째 실수였습니다. 유닛 테스트에 대해 진지하게 생각하고 있다면 테스트 주도 개발을 고려해야합니다. 테스트 개발에서는 통과해야하는 실패한 테스트를 작성한 다음 통과시켜야하는 코드를 작성한 다음 통과해야하는 실패한 테스트를 추가하십시오. _ad infinitum_. –

답변

0

테스트는 실제로 패키지 코드를 실행해야합니다. 그러면 패키지를 깨는 것이 테스트에 표시됩니다.

+0

안녕하세요. Thomas (테스트 코드 또는 테스트 코드)가 패키지 코드를 어떻게 실행할 수 있습니까? 그게 무슨 뜻 이니? –

1

단위 테스트에서는 계약을 확인합니다. 계약이 변경되지 않으면 변경되지 않습니다. 프로그래머는 UT에 의한 오류로부터 보호 된 구현 느낌을 자유롭게 수정할 수 있습니다.

인용문은 계약 변경에 관한 것입니다. UT는 계약 변경을 나타내며 프로그래머는이 변경이 합리적임을 보장해야합니다. 잘 설계된 소프트웨어에서는 구현의 정확성을 검증하기보다 프로세스의 속도를 향상시키는 것보다 쉽습니다.

0

강조 표시된 문장에 모듈의 원래 '계약'또는 '요구 사항'이 변경되거나 변경되지 않은 경우와 같이 세부 정보가 더 있어야한다고 생각합니다. 빠른 읽기라는 말에 원래 계약이 변경되지 않았습니다. 그러나 여전히 실행해야하고 작동하는지 확인해야합니다. 또는 코드가 수정으로 인해 성능이 향상되면 향상을 반영하여 테스트를 다시 조정해야합니다. 그러나 다시 요구 사항은 동일하게 유지되고 코드가 더 잘 수행됩니다.

관련 문제