2013-05-21 2 views
1

Behat/Mink를 통해 RSS 피드를 테스트하려고합니다. 불행히도 항상 오류 메시지가 표시됩니다.Behat/Mink : XML 응답을 평가하는 방법

현재 노드 목록이 비어 있습니다.

누구나 Behat/Mink를 통해 XML 응답 (XML에서 문자열 검색)을 테스트하는 방법을 알고 있습니까?

편집

나는 몇 가지 방법을 찾아야하고, 가장 Behat/밍크 실행을 얻을 수있을 것이다. 하지만 그게 가능하지 않다면, 나는 해결 방법으로도 살 수 있습니다. 그렇게하는 방법에 대한 예가 좋습니다!

답변

5

당신은

$xml = $this->getSession()->getDriver()->getContent(); 

하여 원시 컨텐츠를 얻을 수 있습니다 그리고 당신은 반환 된 XML 컨텐츠를 테스트하기 위해 정규식/DOMDocument를 사용할 수 있습니다.

3

밍크는 브라우저 에뮬레이션 추상화 레이어입니다. 일부 브라우저는 RSS를 읽을 수 있지만 일부 브라우저는 읽을 수 없습니다. 커스텀 XML 파싱은 밍크의 책임이 아니다. Behat + Web Crawler + DomDocument (또는 PHP RSS 파서)를 조합하여 사용하십시오.

+0

힌트를 보내 주셔서 감사합니다! 이 기능을 필자의 feature-context (필자의 경우 MinkContext를 확장)에 어떻게 추가 할 수 있는지 설명해 주시겠습니까? XML을 구문 분석하는 방법에 대해 이야기하는 것이 아니라 http 응답의 내용을 검색하는 방법입니다. 내 컨텍스트에서 가지고있는 것은 session :: getPage이며, 이는 나에게 도움이되지 않는다. – stoefln

+0

@stoefln은 http 클라이언트 나 file_get_contents()를 사용하여 rss 피드를 가져온다. –

+0

@ JakubZalas 아, 그냥 $ this-> getSession() -> getCurrentUrl() 컨텍스트에서 현재 URL을 얻을 수있는 알게되었습니다. 그게 효과가 있습니다 ... 당신이 대답을 만들고 싶다면, 그 특혜를 줄 수 있습니다. – stoefln

1

@everzet이 언급했듯이 Mink는 http 클라이언트가 아닌 브라우저 에뮬레이터이기 때문에 작업에 가장 적합한 도구는 아닙니다.

밍크에 국한되지 않고 임의의 PHP 클라이언트 (예 : guzzle 또는 buzz) 또는 file_get_contents()을 사용하여 rss 피드를 가져올 수 있습니다. 당신의 FeatureContext.php 파일에서