gpt4 book ai didi

php - Cakephp 3 如何使用TestSuite 来测试更新查询?

转载 作者:行者123 更新时间:2023-11-29 07:53:49 24 4
gpt4 key购买 nike

我的表文件中有以下操作。

public function tokenChange($token){
if(!$token) return false;
return $this->query()
->update()
->set(['email_token' => NULL, 'email_verified'=>1, 'email_token_expires'=>NULL])
->where(['email_token' => $token])
->execute();
}

这是我的 TableTest 中的操作

public function testTokenChange()
{
$result = $this->Users->tokenChange('5404f27f3d9a4');
$expected = TRUE;
debug($result);
$this->assertEquals($expected,$result);
}

我知道查询不会返回 bool 值。但是,如何在不运行另一个查询来检查表的情况下检查更新是否实际发生?

最佳答案

您基本上会测试修改后的行是否按照您的预期进行了修改:

public function testTokenChange()
{
$id = $this->Users->findByEmailToken('5404f27f3d9a4')->first()->id;
$this->Users->tokenChange('5404f27f3d9a4');
$row = $this->Users->get($id);
$expected = [
'email_token' => null,
'email_verified' => true,
'email_token_expires' => null
];
$this->assertEquals($expected, $row->extract(array_keys($expected)));
}

关于php - Cakephp 3 如何使用TestSuite 来测试更新查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25651568/

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