* [misc] Enhance unit tests for repoTao::parseTaskComment() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1444,13 +1444,24 @@ class repoTest
|
||||
return $diffs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test parseTaskComment method.
|
||||
*
|
||||
* @param string $comment
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function parseTaskCommentTest(string $comment)
|
||||
{
|
||||
$rules = $this->objectModel->processRules();
|
||||
$actions = array();
|
||||
ob_start();
|
||||
$result = $this->objectModel->parseTaskComment($comment, $rules, $actions);
|
||||
ob_end_clean();
|
||||
|
||||
// 使用反射调用tao层的protected方法
|
||||
$method = new ReflectionMethod($this->objectTao, 'parseTaskComment');
|
||||
$method->setAccessible(true);
|
||||
$result = $method->invokeArgs($this->objectTao, array($comment, $rules, &$actions));
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@@ -1,27 +1,47 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 repoModel->parseTaskComment();
|
||||
title=测试 repoTao::parseTaskComment();
|
||||
timeout=0
|
||||
cid=1
|
||||
cid=0
|
||||
|
||||
- 解析完成任务属性8 @8
|
||||
- 解析完成多个任务
|
||||
- 测试步骤1:正常解析完成任务注释属性8 @8
|
||||
- 测试步骤2:解析多个任务ID的注释
|
||||
- 属性1 @1
|
||||
- 属性8 @8
|
||||
- 属性12 @12
|
||||
- 测试步骤3:解析开始任务注释属性5 @5
|
||||
- 测试步骤4:解析记录工时注释属性3 @3
|
||||
- 测试步骤5:解析空注释内容 @0
|
||||
- 测试步骤6:解析无效格式注释 @0
|
||||
- 测试步骤7:解析混合类型任务注释
|
||||
- 属性2 @2
|
||||
- 属性9 @9
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
|
||||
|
||||
su('admin');
|
||||
|
||||
$repo = new repoTest();
|
||||
|
||||
$finishTaskComment = 'Finish Task #8 Cost:2h';
|
||||
$finishTaskComment2 = 'Finish Task #1,8,12. Cost:3h';
|
||||
// 测试数据:不同类型的任务注释
|
||||
$finishTaskComment = 'Finish Task #8 Cost:2h'; // 完成单个任务
|
||||
$multiTaskComment = 'Finish Task #1,8,12 Cost:3h'; // 完成多个任务
|
||||
$startTaskComment = 'Start Task #5 Cost:1h Left:7h'; // 开始任务
|
||||
$effortTaskComment = 'Effort Task #3 Cost:2h Left:6h'; // 记录工时
|
||||
$emptyComment = ''; // 空注释
|
||||
$invalidComment = 'This is just a normal comment without tasks'; // 无效格式
|
||||
$mixedComment = 'Start Task #2 Cost:1h Left:5h and Finish Task #9 Cost:3h'; // 混合类型
|
||||
|
||||
r($repo->parseTaskCommentTest($finishTaskComment)) && p('8') && e('8'); //解析完成任务
|
||||
r($repo->parseTaskCommentTest($finishTaskComment2)) && p('1,8,12') && e('1,8,12'); //解析完成多个任务
|
||||
r($repo->parseTaskCommentTest($finishTaskComment)) && p('8') && e('8'); // 测试步骤1:正常解析完成任务注释
|
||||
r($repo->parseTaskCommentTest($multiTaskComment)) && p('1,8,12') && e('1,8,12'); // 测试步骤2:解析多个任务ID的注释
|
||||
r($repo->parseTaskCommentTest($startTaskComment)) && p('5') && e('5'); // 测试步骤3:解析开始任务注释
|
||||
r($repo->parseTaskCommentTest($effortTaskComment)) && p('3') && e('3'); // 测试步骤4:解析记录工时注释
|
||||
r($repo->parseTaskCommentTest($emptyComment)) && p() && e('0'); // 测试步骤5:解析空注释内容
|
||||
r($repo->parseTaskCommentTest($invalidComment)) && p() && e('0'); // 测试步骤6:解析无效格式注释
|
||||
r($repo->parseTaskCommentTest($mixedComment)) && p('2,9') && e('2,9'); // 测试步骤7:解析混合类型任务注释
|
||||
Reference in New Issue
Block a user