gpt4 book ai didi

CakePHP PHP单元测试

转载 作者:行者123 更新时间:2023-12-02 16:52:30 25 4
gpt4 key购买 nike

我编写了 testAdd() 方法,并尝试调试当前返回 null$this->Article->getInsertID(); > while debug($articles) 正确显示新插入的数据。

public function testAdd() {
$data = array(
'Article' => array(
'title' => 'Fourth Title',
'content' => 'Fourth Title Body',
'published' => '1',
'created' => '2015-05-18 10:40:34',
'updated' => '2015-05019 10:23:34'
)
);
$this->_testAction('/articles/add', array('method' => 'post', 'data' => $data));
$articles = $this->Article->find('first', array('order' => array('id DESC')));
debug($articles);
debug($this->Article->getInsertID);
// return null.

}

为什么$this->Article->getInsertID()返回null

最佳答案

getInsertID 是方法而不是属性,因此您应该使用 $this->Article->getInsertID() 而不是 $this->Article->getInsertID 。但是,不要断言主键值(这不是一个特别可靠的测试),而是断言刚刚插入的数据已保存到数据库中。

例如断言文章title已保存:-

public function testAdd() {
$data = array(
'Article' => array(
'title' => 'Fourth Title',
'content' => 'Fourth Title Body',
'published' => '1',
'created' => '2015-05-18 10:40:34',
'updated' => '2015-05019 10:23:34'
)
);
$this->_testAction('/articles/add', array('method' => 'post', 'data' => $data));
$result = $this->Article->find('first', array('order' => array('id DESC')));
$this->assertEqual($data['Article']['title'], $result['Article']['title']);
}

应该编写测试,以便您 100% 确定结果应该是什么。主键取决于数据库的当前状态,因此可能不一定是您在运行测试时所期望的。

关于CakePHP PHP单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32178250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com