2013-09-25 4 views
-1

유효성 검사를 위해 내 모델을 테스트하는 데 문제가 있습니다.Yii 및 captcha가있는 TDD

일부 유효성 검사 (암호 비교, 필수 입력란 등)를 테스트하고 싶습니다.

하지만 나는 일어날 수 없다! 나는 마녀의 captcha에 문제가있다. 어떻게 해결할 수 있습니까?

성공 시험을 위해 captcha를 전달하는 방법은 무엇입니까?

+0

질문이 모호합니다. 당신이 직면 한 문제는 정확히 무엇입니까 ?? 보안 문자가 생성되지 않습니까? ? 그렇지 않으면 유효성이 검사되지 않습니까? ? –

답변

2

정확한 코드를 제공 할 수는 없지만 올바른 방향으로 연결하면 좋을 것입니다. 다음은 Yii의 내장 captcha에 대한 것이고 타사 플러그인/api는 아닙니다.

먼저 captcha는 세션 데이터에 저장됩니다. 올바른 보안 이름을 알고 있으면 직접 액세스 할 수 있습니다.

둘째, captcha를 테스트하기보다는 captcha를 "모방"하고 싶을 수도 있습니다. Yii는 TDD를 기반으로 제작되었으므로 사용중인 구성 요소를 테스트했습니다. captcha를 다시 테스트 할 필요가 없으며 세션 변수를 설정해야합니다. Yii는 이미 그렇게했기 때문에 테스트에서 작동한다는 것을 보여줍니다.

captcha에서 설정 한 세션 변수를 확인하고 해당 변수를 수동으로 더미 텍스트 (abcdefg)로 설정 한 다음 모델 및 captcha 필드/변수를 동일한 더미 텍스트 (abcdefg)로 채우고 보안 문자 필드의 유효성 검사 및 실패를 테스트 할 수 있습니다.

내 다른 옵션은 텍스트가 설정되도록 captcha (생성/생성은하지만 렌더링하지 않음)를 수동으로 수행 한 다음 CCaptchaAction의 메서드 getVerifyCode()을 사용하여 확인할 코드를 얻는 것입니다. 그 방법은 또한 captcha 텍스트를 생성하고 그것이 존재하지 않는다면 세션에도 저장한다고 믿습니다.