0

我创建了一个测试类,其中包含一个测试特定操作的函数:

public function testdoAddItem()
{
    $this->assertEquals(0, $this->getConnection()->getRowCount('article'), "Pre-Condition");

    #$tableNames = array('article');
    #$dataSet = $this->getConnection()->createDataSet($tableNames);

    $article = new article();
    $article->constructChanger(1, 1, 'Article');
    $article->doAddItem();

    $this->assertEquals(2, $this->getConnection()->getRowCount('article'), "Inserting failed");
}

我得到第一个断言结果为真,它应该是,但我没有看到应该返回失败断言的第二个返回。我所看到的只是一个空白输出。

这是我的 doAddItem():

    $pageid = $this->pageid;
    $schoolid = crud::quote($_POST['schoolid']);
    $newvalue = crud::quote(strip_tags($_POST['addareatext']));
    $title = crud::quote($_POST['title']);

    // Inserting the new article
    $sql = "INSERT INTO `article`(`id`, `pageid`, `school_id`, `title`, `content`) 
            VALUES ('', '" . $pageid . "', {$schoolid}, {$title}, {$newvalue});";
    $result = crud::rawSelect($sql);
4

2 回答 2

0

问题在于系统中的路由。由于某种原因 PHPUnit 不喜欢 "define(SOMETHING, $something)"; 这造成了一系列错误。

于 2013-05-23T11:19:40.213 回答
0

这源于user1652382的回答。

PHPUnit 对每个测试使用单个进程,因此如果您在系统中的某个位置定义了,并且例如使用setUp()或由您在测试中使用的某个类进行了初始化,则定义将被定义两次,这会使 PHP 彻底死掉。

有办法单独运行所有测试,但我发现它非常脆弱,所以我得到了单独init.php的,它加载核心内容,它根据每个测试进行定义。

于 2013-05-23T11:27:33.217 回答