Um das Einfügen/Aktualisieren einer Zeile zu testen, habe ich einen Test geschrieben, um einen Beitrag zu simulieren, um zu überprüfen, ob er weiterleitet und um zu überprüfen, ob der neu eingefügte/aktualisierte Text auf der Seite ist. Der Code funktioniert, aber nicht der Test - können Sie mir sagen, warum es falsch ist?Wie testet eine Einheit das Hinzufügen einer Zeile zu einer Datenbank mit 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');
}
Die folgenden Tests beide arbeiten, zu behaupten, dass die Index-Seite mit einem ID-Parameter, um den entsprechenden Text enthält, und dass nach einem Produkt, das Produkt Titel Löschen wird nicht mehr auf der Seite angezeigt.
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');
}