基本上,尝试以错误的顺序截断表时,由于“违反完整性”,我的测试失败了。
每个Db测试用例都扩展了PHPUnit_DatabaseTestCase_Abstract,它会在测试之前将表截断。当我在“属性”上一行时,由于错误,所有测试都失败了:查询时COMPOSITE [TRUNCATE]操作失败。
这是我的数据库架构:
-- -----------------------------------------------------
-- Table `project`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `project` (
`project_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`project_id`) ,
UNIQUE INDEX `project_id_UNIQUE` (`project_id` ASC) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `customer`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `customer` (
`customer_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`firstname` VARCHAR(45) NOT NULL ,
`lastname` VARCHAR(45) NOT NULL ,
`email` VARCHAR(45) NOT NULL ,
`telephone` VARCHAR(45) NULL DEFAULT NULL ,
PRIMARY KEY (`customer_id`) ,
UNIQUE INDEX `customer_id_UNIQUE` (`customer_id` ASC) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `property`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `property` (
`property_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`project_id` INT UNSIGNED NOT NULL ,
`customer_id` INT UNSIGNED NULL DEFAULT NULL ,
`name` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`property_id`) ,
UNIQUE INDEX `property_id_UNIQUE` (`property_id` ASC) ,
INDEX `fk_property_project` (`project_id` ASC) ,
INDEX `fk_property_customer1` (`customer_id` ASC) ,
CONSTRAINT `fk_property_project`
FOREIGN KEY (`project_id` )
REFERENCES `project` (`project_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_property_customer1`
FOREIGN KEY (`customer_id` )
REFERENCES `customer` (`customer_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我测试错了吗?在测试之前,如何指定以正确的顺序截断?
Zend版本1.11.5
该错误应该是固定的(请检查framework zend forum
最佳答案
当您想使用phpunit来测试数据库时,我认为最好为此扩展和使用ZF的类:Zend_Test_PHPUnit_DatabaseTestCase而不是直接扩展PHPUnit_DatabaseTestCase_Abstract。也许这是您问题的一部分。
关于zend-framework - 尝试截断Zend Db单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5905796/