행 삽입/업데이트를 테스트하기 위해 게시물을 시뮬레이트하고 리디렉션되는지 확인하고 새로 삽입/업데이트 된 텍스트가 페이지에 있는지 확인하는 테스트를 작성했습니다. 코드가 작동하지만 테스트가 아닌 이유 - 왜 잘못되었는지 말해 줄 수 있습니까? ID가 매개 변수를 사용하여 인덱스 페이지가 적절한 텍스트를 포함하고 있다고 주장Zend Framework 및 PHPUnit을 사용하여 한 유닛이 데이터베이스에 행 추가를 테스트하는 방법은 무엇입니까?
public function testEditProduct() {
$request = $this->getRequest();
$request->setMethod('POST');
$request->setPost(array(
'id'=>'1',
'title'=>'Test Product 1a'
));
$this->dispatch('/product/edit/id/1');
$this->assertRedirectTo('/');
$this->assertQueryContentContains('a', 'Test Product 1a');
}
public function testAddProduct() {
$request = $this->getRequest();
$request->setMethod('POST');
$request->setPost(array(
'title'=>'Test Product 3'
));
$this->dispatch('/product/add/');
$this->assertRedirectTo('/');
$this->assertQueryContentContains('a', 'Test Product 3');
}
다음의 시험을 모두 작업, 해당 제품의 제목은 더 이상 페이지에 표시되는 제품을 삭제 한 후. 내가 올바른 해요 경우, 단위 테스트 프레임 워크는 리디렉션을 실행하지 않습니다
$this->assertRedirectTo('/');
$this->assertQueryContentContains('a', 'Test Product 3');
$this->assertRedirectTo('/');
$this->resetRequest();
$this->resetResponse();
$this->disptach('/');
$this->assertQueryContentContains('a', 'Test Product 3');
에 첫 번째 테스트에서
public function testIndexPageListsProducts() {
$this->dispatch('/product/index/id/1');
$this->assertQueryContentContains('h1', 'Test Product 1');
}
public function testDeleteProduct() {
$request = $this->getRequest();
$request->setMethod('POST');
$this->dispatch('/product/delete/id/2');
$this->assertRedirectTo('/');
$this->assertNotQueryContentContains('a', 'Test Product 2');
}