diff --git a/module/testtask/test/lib/testtask.unittest.class.php b/module/testtask/test/lib/testtask.unittest.class.php index cf87d031e4..6dd8fbc599 100644 --- a/module/testtask/test/lib/testtask.unittest.class.php +++ b/module/testtask/test/lib/testtask.unittest.class.php @@ -643,4 +643,20 @@ class testtaskTest return $result; } + + /** + * Test getSceneCases method. + * + * @param int $productID + * @param array $runs + * @access public + * @return array + */ + public function getSceneCasesTest(int $productID, array $runs): array + { + $result = $this->objectModel->getSceneCases($productID, $runs); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/testtask/test/model/getscenecases.php b/module/testtask/test/model/getscenecases.php new file mode 100755 index 0000000000..f7cee4f5e6 --- /dev/null +++ b/module/testtask/test/model/getscenecases.php @@ -0,0 +1,67 @@ +#!/usr/bin/env php +id->range('1-10'); +$scene->product->range('1{5},2{3},3{2}'); +$scene->title->range('登录场景,购物场景,支付场景,用户管理场景,系统设置场景,产品管理场景,订单处理场景,报表查看场景,权限控制场景,数据备份场景'); +$scene->parent->range('0{3},1{2},2{2},3{1},4{1},5{1}'); +$scene->grade->range('1{3},2{4},3{3}'); +$scene->path->range(',1,,2,,3,,1,2,,1,3,,2,3,,2,4,,3,5,,4,6,,5,7,'); +$scene->sort->range('1-10'); +$scene->deleted->range('0{8},1{2}'); +$scene->gen(10); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$testtaskTest = new testtaskTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 + +// 创建测试用的run对象 +$run1 = new stdclass(); +$run1->scene = 1; +$run1->id = 1; + +$run2 = new stdclass(); +$run2->scene = 2; +$run2->id = 2; + +$run3 = new stdclass(); +$run3->scene = ''; +$run3->id = 3; + +$run4 = new stdclass(); +$run4->scene = 0; +$run4->id = 4; + +$run5 = new stdclass(); +$run5->scene = 6; +$run5->id = 5; + +r(count($testtaskTest->getSceneCasesTest(1, array($run1, $run2)))) && p() && e('2'); // 步骤1:正常情况,返回两个元素数组 +r(count($testtaskTest->getSceneCasesTest(1, array($run3, $run4)))) && p() && e('2'); // 步骤2:无场景用例,仍返回两个元素数组 +r(count($testtaskTest->getSceneCasesTest(1, array($run3)))) && p() && e('2'); // 步骤3:测试空场景的处理,返回两个元素数组 +r(count($testtaskTest->getSceneCasesTest(1, array()))) && p() && e('2'); // 步骤4:空runs数组,返回两个元素数组 +r(count($testtaskTest->getSceneCasesTest(2, array($run5)))) && p() && e('2'); // 步骤5:不同产品的场景处理 \ No newline at end of file