3
當嘗試以錯誤順序截斷表時,基本上由於「完整性衝突」而導致我的測試失敗。嘗試截斷時Zend Db單元測試失敗
每個Db測試用例都會擴展PHPUnit_DatabaseTestCase_Abstract,它會在測試之前截斷表。只要在Property中有一行,所有測試都會失敗,因爲錯誤: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_DatabaseTestCase_Abstract,因爲這是延伸Zend_Test_PHPUnit_DatabaseTestCas個人類。即 – 2011-05-06 22:11:31