From eae359fb084c8d9f1e91b7bf1aea771357468e33 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 12 Sep 2023 09:58:42 +0800 Subject: [PATCH] * Modify unit test of testtaskModel::update, and fix error of it. --- module/testtask/model.php | 2 +- module/testtask/test/model/update.php | 28 +++++++++++++++++++++++-- module/testtask/test/testtask.class.php | 27 ++++++++++++++++++------ 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/module/testtask/model.php b/module/testtask/model.php index 62842928ed..9deb0709a5 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -762,7 +762,7 @@ class testtaskModel extends model ->exec(); if(dao::isError()) return false; - $this->file->processFile4Object('testtask', $oldTask, $task); + $this->loadModel('file')->processFile4Object('testtask', $oldTask, $task); return common::createChanges($oldTask, $task); } diff --git a/module/testtask/test/model/update.php b/module/testtask/test/model/update.php index a733e151e8..f9216552db 100755 --- a/module/testtask/test/model/update.php +++ b/module/testtask/test/model/update.php @@ -2,6 +2,10 @@ gen(10); +zdTable('user')->gen(1); + su('admin'); /** @@ -11,9 +15,29 @@ cid=1 pid=1 - */ +$task1 = new stdclass(); +$task1->id = 1; +$task1->name = '修改name'; + +$task2 = new stdclass(); +$task2->id = 2; +$task2->status = 'doing'; + +$task3 = new stdclass(); +$task3->id = 3; +$task3->product = '10'; + +$task4 = new stdclass(); +$task4->id = 4; +$task4->name = '修改name'; +$task4->status = 'doing'; +$task4->product = '10'; + $testtask = new testtaskTest(); -r($testtask->updateTest()) && p() && e(); \ No newline at end of file +r($testtask->updateTest($task1)) && p('name,status,product') && e('修改name,wait,1'); // 测试修改测试单 name +r($testtask->updateTest($task2)) && p('name,status,product') && e('测试单2,doing,2'); // 测试修改测试单 status +r($testtask->updateTest($task3)) && p('name,status,product') && e('测试单3,done,10'); // 测试修改测试单 product +r($testtask->updateTest($task4)) && p('name,status,product') && e('修改name,doing,10'); // 测试修改测试单 name status product diff --git a/module/testtask/test/testtask.class.php b/module/testtask/test/testtask.class.php index 813e614d30..c03ed44621 100644 --- a/module/testtask/test/testtask.class.php +++ b/module/testtask/test/testtask.class.php @@ -9,9 +9,9 @@ class testtaskTest /** * Test create testtask. - * - * @param int $projectID - * @param array $params + * + * @param int $projectID + * @param array $params * @access public * @return void */ @@ -26,13 +26,28 @@ class testtaskTest return $this->objectModel->getById($taskID); } - public function update($taskID) + /** + * 测试更新测试单。 + * Test update a test task. + * + * @param object $task + * @access public + * @return array|object + */ + public function updateTest(object $task): array|object { - $objects = $this->objectModel->update($taskID); + global $tester; + $oldTask = $tester->dao->findByID($task->id)->from(TABLE_TESTTASK)->fetch(); + foreach(explode(',', $tester->config->testtask->create->requiredFields) as $field) + { + if(!isset($task->{$field})) $task->{$field} = $oldTask->{$field}; + } + $changes = $this->objectModel->update($task, $oldTask); if(dao::isError()) return dao::getError(); - return $objects; + $task = $tester->dao->findByID($task->id)->from(TABLE_TESTTASK)->fetch(); + return $task; } /**