+ Add score::computeBugScore unit test.

This commit is contained in:
tianshujie
2023-12-19 13:40:02 +08:00
parent 1df409fbfb
commit f7ee85c5ef
2 changed files with 84 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env php
<?php
/**
title=测试 scoreModel->computeBugScore();
cid=1
- 计算caseID=0时,用例建bug的积分第0条的score属性 @1
- 计算caseID=1时,用例建bug的积分第0条的score属性 @1
- 计算caseID不存在时,用例建bug的积分第0条的score属性 @1
- 计算caseID=0时,保存bug步骤模版的积分第0条的score属性 @20
- 计算caseID=1时,保存bug步骤模版的积分第0条的score属性 @20
- 计算caseID不存在时,保存bug步骤模版的积分第0条的score属性 @20
- 计算caseID=0时,确认bug的积分第0条的score属性 @4
- 计算caseID=1时,确认bug的积分第0条的score属性 @4
- 计算caseID不存在时,确认bug的积分第0条的score属性 @4
- 计算caseID=0时,解决bug的积分第0条的score属性 @4
- 计算caseID=1时,解决bug的积分第0条的score属性 @4
- 计算caseID不存在时,解决bug的积分第0条的score属性 @4
- 计算caseID=0时,创建bug的积分第0条的score属性 @1
- 计算caseID=1时,创建bug的积分第0条的score属性 @1
- 计算caseID不存在时,创建bug的积分第0条的score属性 @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/score.class.php';
zdTable('user')->gen(5);
zdTable('case')->gen(1);
zdTable('bug')->gen(1);
$caseIds = array(0, 1, 2);
$methods = array('createFormCase', 'saveTplModal', 'confirm', 'resolve', 'create');
$scoreTester = new scoreTest();
r($scoreTester->computeBugScoreTest($caseIds[0], $methods[0])) && p('0:score') && e('1'); // 计算caseID=0时,用例建bug的积分
r($scoreTester->computeBugScoreTest($caseIds[1], $methods[0])) && p('0:score') && e('1'); // 计算caseID=1时,用例建bug的积分
r($scoreTester->computeBugScoreTest($caseIds[2], $methods[0])) && p('0:score') && e('1'); // 计算caseID不存在时,用例建bug的积分
r($scoreTester->computeBugScoreTest($caseIds[0], $methods[1])) && p('0:score') && e('20'); // 计算caseID=0时,保存bug步骤模版的积分
r($scoreTester->computeBugScoreTest($caseIds[1], $methods[1])) && p('0:score') && e('20'); // 计算caseID=1时,保存bug步骤模版的积分
r($scoreTester->computeBugScoreTest($caseIds[2], $methods[1])) && p('0:score') && e('20'); // 计算caseID不存在时,保存bug步骤模版的积分
r($scoreTester->computeBugScoreTest($caseIds[0], $methods[2])) && p('0:score') && e('4'); // 计算caseID=0时,确认bug的积分
r($scoreTester->computeBugScoreTest($caseIds[1], $methods[2])) && p('0:score') && e('4'); // 计算caseID=1时,确认bug的积分
r($scoreTester->computeBugScoreTest($caseIds[2], $methods[2])) && p('0:score') && e('4'); // 计算caseID不存在时,确认bug的积分
r($scoreTester->computeBugScoreTest($caseIds[0], $methods[3])) && p('0:score') && e('4'); // 计算caseID=0时,解决bug的积分
r($scoreTester->computeBugScoreTest($caseIds[1], $methods[3])) && p('0:score') && e('4'); // 计算caseID=1时,解决bug的积分
r($scoreTester->computeBugScoreTest($caseIds[2], $methods[3])) && p('0:score') && e('4'); // 计算caseID不存在时,解决bug的积分
r($scoreTester->computeBugScoreTest($caseIds[0], $methods[4])) && p('0:score') && e('1'); // 计算caseID=0时,创建bug的积分
r($scoreTester->computeBugScoreTest($caseIds[1], $methods[4])) && p('0:score') && e('1'); // 计算caseID=1时,创建bug的积分
r($scoreTester->computeBugScoreTest($caseIds[2], $methods[4])) && p('0:score') && e('1'); // 计算caseID不存在时,创建bug的积分
+33
View File
@@ -117,4 +117,37 @@ class scoreTest
return $this->objectModel->computeTaskScore('task', $method, $taskID, $rule, $extended);
}
/**
* 计算Bug积分。
* Compute bug score.
*
* @param int $caseID
* @param string $method
* @access public
* @return array
*/
public function computeBugScoreTest(int $param, string $method): array
{
$rule = isset($this->objectModel->config->score->rule->bug->{$method}) ? $this->objectModel->config->score->rule->bug->{$method} : array();
$extended = isset($this->objectModel->config->score->ruleExtended['bug'][$method]) ? $this->objectModel->config->score->ruleExtended['bug'][$method] : array();
if(in_array($method, array('confirm', 'resolve')))
{
$object = $this->objectModel->dao->select('*')->from(TABLE_BUG)->where('id')->eq($param)->fetch();
if(!$object)
{
$object = new stdclass();
$object->id = $param;
$object->openedBy = 'admin';
$object->severity = 1;
}
}
else
{
$object = $param;
}
return $this->objectModel->computeBugScore('bug', $method, $object, $rule, '', 'admin', $extended);
}
}