* Refactor testcaseModel::getStepByProductAandModule, and add its unit test.

This commit is contained in:
liumengyi
2023-09-14 13:33:46 +08:00
parent 5046b38c42
commit eb8b8a0b03
3 changed files with 59 additions and 1 deletions
+2 -1
View File
@@ -2583,6 +2583,7 @@ class testcaseModel extends model
}
/**
* 通过产品和模块获取步骤信息。
* Get step by product and module.
*
* @param int $productID
@@ -2590,7 +2591,7 @@ class testcaseModel extends model
* @access public
* @return array
*/
function getStepByProductAndModule($productID, $moduleID)
function getStepByProductAndModule(int $productID, int $moduleID): array
{
$fields = "t1.id as testcaseID,"
. "t2.id as stepID,"
@@ -0,0 +1,37 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/testcase.class.php';
zdTable('case')->config('modulecase')->gen('100');
zdTable('casestep')->gen('100');
zdTable('user')->gen('1');
su('admin');
/**
title=测试 testcaseModel->getStepByProductAndModule();
cid=1
pid=1
*/
$productIdList = array(0, 1, 2, 3);
$moduleIdList = array(0, 1821, 1825, 1829);
$testcase = new testcaseTest();
r($testcase->getStepByProductAndModuleTest($productIdList[0], $moduleIdList[0])) && p() && e('0'); // 获取产品 0 模块 0 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[1], $moduleIdList[0])) && p() && e('testcaseID:1 stepID: 1. testcaseID:2 stepID: 2. testcaseID:3 stepID: 3. testcaseID:4 stepID: 4.'); // 获取产品 1 模块 0 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[1], $moduleIdList[1])) && p() && e('testcaseID:1 stepID: 1.'); // 获取产品 1 模块 1821 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[1], $moduleIdList[2])) && p() && e('0'); // 获取产品 1 模块 1825 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[1], $moduleIdList[3])) && p() && e('0'); // 获取产品 1 模块 1829 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[2], $moduleIdList[0])) && p() && e('testcaseID:5 stepID: 5. testcaseID:6 stepID: 6. testcaseID:7 stepID: 7. testcaseID:8 stepID: 8.'); // 获取产品 2 模块 0 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[2], $moduleIdList[1])) && p() && e('0'); // 获取产品 2 模块 1821 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[2], $moduleIdList[2])) && p() && e('testcaseID:5 stepID: 5.'); // 获取产品 2 模块 1825 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[2], $moduleIdList[3])) && p() && e('0'); // 获取产品 2 模块 1829 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[3], $moduleIdList[0])) && p() && e('testcaseID:9 stepID: 9. testcaseID:10 stepID: 10. testcaseID:11 stepID: 11. testcaseID:12 stepID: 12.'); // 获取产品 3 模块 0 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[3], $moduleIdList[1])) && p() && e('0'); // 获取产品 3 模块 1821 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[3], $moduleIdList[2])) && p() && e('0'); // 获取产品 3 模块 1825 的步骤信息
r($testcase->getStepByProductAndModuleTest($productIdList[3], $moduleIdList[3])) && p() && e('testcaseID:10 stepID: 10.'); // 获取产品 3 模块 1829 的步骤信息
+20
View File
@@ -1392,4 +1392,24 @@ class testcaseTest
if(dao::isError()) return dao::getError();
return $return;
}
/**
* 测试通过产品和模块获取步骤信息。
* Test get step by product and module.
*
* @param int $productID
* @param int $moduleID
* @access public
* @return array|string
*/
public function getStepByProductAndModuleTest(int $productID, int $moduleID): array|string
{
$array = $this->objectModel->getStepByProductAndModule($productID, $moduleID);
if(dao::isError()) return dao::getError();
$return = '';
foreach($array as $key => $step) $return .= "testcaseID:{$step->testcaseID} stepID: {$step->stepID}. ";
return trim($return);
}
}