2014-04-08 1 views
0

아무도 이것을 설명 할 수 있습니까?기능 테스트에서 왜 하드 코드 URL이 필요합니까?

기능 URL 테스트 하드 코딩은 기능 테스트에 적합합니다. 테스트 이 Symfony 라우터를 사용하여 URL을 생성하면 최종 사용자에게 영향을 줄 수있는 응용 프로그램 URL을 에 변경하지 않습니다. 그들이 언급하는 변화의 어떤 종류의

http://symfony.com/doc/current/book/testing.html#working-with-the-test-client

? 라우터를 사용하여 모든 URL을 생성하면 왜 이런 문제가 발생합니까?

답변

2

URL이 변경되면 북마크, 다른 사이트의 링크, 페이지 순위에 영향을줍니다. 생성 된 URL을 사용하여 테스트하면 URL 패턴이 변경 되더라도 테스트가 성공합니다.

하드 코딩 된 URL을 사용하면 이러한 일이 발생하지 않도록 할 수 있습니다. 우연히 URL을 변경하면 테스트가 실패합니다. 변경하려는 경우 하드 코딩 된 URL을 업데이트하여 새로운 상황에 맞출 수 있습니다. 당신이 통제 할 수있는 방법.

URL이 변경되면 일부 응용 프로그램이나 특정 사이트 또는 응용 프로그램 내의 URL에 전혀 문제가 없을 수 있습니다. 이 경우 물론 URL을 생성 할 수 있습니다. 그것은 일반적인 조언이지 법률은 아닙니다. :)

1

URL을 하드 코딩하지 않는 경우, URL을 생성하기위한 템플릿 코드는 다음과 같을 수 있습니다 : 당신의 기능 테스트 경우

http://www.example.com/action 

: 라우터가 다음에 확장됩니다

{{ path('examplebundle_home_action') }} 

위와 같이 path 호출을 참조하면 URL이 다음과 같이 동작하도록 경로를 변경한다고 가정합니다.

http://www.example.com/newaction 

테스트에서 path 호출을 참조하기 때문에 새 URL을 자연스럽게 참조하므로 계속 전달됩니다. 그러나 사용자는 이전 URL을 북마크했거나 응용 프로그램의 다른 곳에서 Symfony 외부로 참조 될 수 있습니다. 영향을 완전히 이해하지 않고 URL을 변경하는 것은 항상 위험하며 기능 테스트에서 하드 코드 된 것은 중요한 부분이 변경된 것을 상기시키는 좋은 알림입니다.