2011-05-06 49 views
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

回答

1

当你想使用PHPUnit来测试你的数据库,我认为这将是更好的扩展和使用ZF的类为此:而不是直接延长PHPUnit_DatabaseTestCase_Abstract也许这是你的问题的一部分

+0

嗨马尔钦,感谢您的回复 我的数据库测试案例延伸PHPUnit_DatabaseTestCase_Abstract,因为这是延伸Zend_Test_PHPUnit_DatabaseTestCas个人类。即 – 2011-05-06 22:11:31