2010-06-11 11 views
0

현재 제 젠드 프레임 워크 컨트롤러에 대해 일부 단위 테스트를 작성하려고합니다.phpunit 테스트 실행 중 DomDocument :: loadHTML() 오류가 발생했습니다.

public function testListActionShouldContainListTable() 
    { 

     $this->loginToSystem(); 

     $uri = $this->_uriBase . 'campaign/list'; 
     $_SERVER["REQUEST_URI"] = $uri; 

     $this->dispatch('/campaign/list'); 
     $this->assertController('campaign'); 
     $this->assertAction('list'); 
     $this->assertQueryCount('#list',1); 
    } 


CampaignControllerTests::testListActionShouldContainListTable 
DOMDocument::loadHTML(): ID alrt already defined in Entity, line: 36 

이것은 assertQuery 및 assertQueryContains 방법을 사용하여 발생 : 나는 다음과 같은 코드를 실행하면 이런 오류가 발생합니다. 나는이 HTML 노드를 찾거나이 오류를 해결하는 방법을 찾지 못하는 이유에 대해 좋은 답변을 찾지 못했습니다.

미리 도움을 청하십시오!

답변

0

발송물에서 생성되는 HTML이 좋지 않습니다 (하나의 태그에 2 개의 ID가 할당 된 것처럼 보입니다). 이것은 테스트 오류입니다 (정상적으로 작동합니다). 테스트 결과 생성 된 HTML 출력에 오류가 있습니다 ...

+0

$ this-> getResponse-> outputBody() 및 getBody()의 메아리를 수행 했으므로 id에 대해 중복 된 항목을 찾을 수 없습니다. 나는 단지 "본문", "div"뿐만 아니라 xpath 검색을 위해 CSS 검색을 시도했으며 모든 제작에 동일한 오류가 발생했습니다. 적절한 시간에 assertQuery 호출을 제거하면 테스트가 통과됩니다. – ranhan

+0

동일한 id를 가진 둘 이상의 요소 또는 id 속성이 둘 이상인 요소를 찾습니다. – ircmaxell

+0

감사합니다. 내가 dup id를 멀리 보는 것을 멈추기 전에 그것은 마크를 통과하는 데 2 ​​번 밖에 걸리지 않았다. – ranhan

1

문서가 유효한지 확인하십시오. HMTL 문서에 중복 된 ID가 있습니다.

관련 문제