diff --git a/module/custom/test/lib/custom.unittest.class.php b/module/custom/test/lib/custom.unittest.class.php index f9f186e960..587b688aed 100755 --- a/module/custom/test/lib/custom.unittest.class.php +++ b/module/custom/test/lib/custom.unittest.class.php @@ -162,6 +162,102 @@ class customTest return $URSRPairs; } + /** + * 获取需求概念集合(清空数据版本)。 + * Get UR and SR pairs with clean data. + * + * @access public + * @return array + */ + public function getURSRPairsTestWithCleanData(): array + { + // 先清理已有数据 + $this->objectModel->dao->delete()->from(TABLE_LANG) + ->where('module')->eq('custom') + ->andWhere('section')->eq('URSRList') + ->exec(); + + $URSRPairs = $this->objectModel->getURSRPairs(); + if(dao::isError()) return dao::getError(); + + return $URSRPairs; + } + + /** + * 获取需求概念集合测试数据版本。 + * Get UR and SR pairs with test data. + * + * @access public + * @return array + */ + public function getURSRPairsTestWithData(): array + { + // 先清理已有数据 + $this->objectModel->dao->delete()->from(TABLE_LANG) + ->where('module')->eq('custom') + ->andWhere('section')->eq('URSRList') + ->exec(); + + // 插入测试数据 + $testData = array( + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '1', + 'value' => '{"ERName":"业务需求","SRName":"软件需求","URName":"用户需求"}', + 'system' => '1', + 'vision' => 'rnd' + ), + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '2', + 'value' => '{"ERName":"业务需求","SRName":"研发需求","URName":"用户需求"}', + 'system' => '1', + 'vision' => 'rnd' + ), + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '3', + 'value' => '{"ERName":"业务需求","SRName":"软需","URName":"用户需求"}', + 'system' => '1', + 'vision' => 'rnd' + ), + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '4', + 'value' => '{"ERName":"业务需求","SRName":"故事","URName":"史诗"}', + 'system' => '1', + 'vision' => 'rnd' + ), + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '5', + 'value' => '{"ERName":"业务需求","SRName":"需求","URName":"用户需求"}', + 'system' => '1', + 'vision' => 'rnd' + ) + ); + + foreach($testData as $data) + { + $this->objectModel->dao->insert(TABLE_LANG)->data($data)->exec(); + } + + $URSRPairs = $this->objectModel->getURSRPairs(); + if(dao::isError()) return dao::getError(); + + return $URSRPairs; + } + /** * 获取用需求概念集合。 * Test get UR pairs. @@ -197,9 +293,9 @@ class customTest * Test get UR and SR list. * * @access public - * @return array + * @return array|int */ - public function getURSRListTest(): array + public function getURSRListTest(): array|int { $URSRList = $this->objectModel->getURSRList(); @@ -207,6 +303,81 @@ class customTest return $URSRList; } + /** + * 测试准备数据并返回结果。 + * Prepare test data and return result. + * + * @access public + * @return array|int + */ + public function getURSRListWithDataTest(): array|int + { + // 先删除已有数据 + $this->objectModel->dao->delete()->from(TABLE_LANG) + ->where('module')->eq('custom') + ->andWhere('section')->eq('URSRList') + ->exec(); + + // 插入测试数据 + $testData = array( + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '1', + 'value' => '{"ERName":"业务需求","SRName":"软件需求","URName":"用户需求"}', + 'system' => '1', + 'vision' => 'rnd' + ), + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '2', + 'value' => '{"ERName":"业务需求","SRName":"研发需求","URName":"用户需求"}', + 'system' => '1', + 'vision' => 'rnd' + ), + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '3', + 'value' => '{"ERName":"业务需求","SRName":"软件需求","URName":"用户需求"}', + 'system' => '1', + 'vision' => 'rnd' + ), + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '4', + 'value' => '{"ERName":"业务需求","SRName":"故事","URName":"史诗"}', + 'system' => '1', + 'vision' => 'rnd' + ), + array( + 'lang' => 'zh-cn', + 'module' => 'custom', + 'section' => 'URSRList', + 'key' => '5', + 'value' => '{"ERName":"业务需求","SRName":"需求","URName":"用户需求"}', + 'system' => '1', + 'vision' => 'rnd' + ) + ); + + foreach($testData as $data) + { + $this->objectModel->dao->insert(TABLE_LANG)->data($data)->exec(); + } + + $URSRList = $this->objectModel->getURSRList(); + + if(dao::isError()) return dao::getError(); + return $URSRList; + } + /** * 保存表单必填字段设置。 * Test save required fields. @@ -321,7 +492,7 @@ class customTest if(dao::isError()) return dao::getError(); $result = $this->objectModel->loadModel('setting')->getItem('owner=system&module=common&key=disabledFeatures'); - return is_array($result) ? '0' : (string)$result; + return is_array($result) ? '' : (string)$result; } /** @@ -341,7 +512,7 @@ class customTest $URAndSR = $this->objectModel->loadModel('setting')->getItem('owner=system&module=custom&key=URAndSR'); $enableER = $this->objectModel->loadModel('setting')->getItem('owner=system&module=custom&key=enableER'); - $disabledFeatures = is_array($disabledFeatures) ? '0' : (string)$disabledFeatures; + $disabledFeatures = is_array($disabledFeatures) ? '' : (string)$disabledFeatures; $URAndSR = is_array($URAndSR) ? '1' : (string)$URAndSR; $enableER = is_array($enableER) ? '0' : (string)$enableER; diff --git a/module/custom/test/model/getursrpairs.php b/module/custom/test/model/getursrpairs.php index caa3c2330a..9191a56f62 100755 --- a/module/custom/test/model/getursrpairs.php +++ b/module/custom/test/model/getursrpairs.php @@ -3,24 +3,63 @@ /** -title=测试 customModel->getURSRPairs(); +title=测试 customModel::getURSRPairs(); timeout=0 -cid=1 +cid=0 -- 获取需求概念集 +- 步骤1:正常情况获取需求概念集合 - 属性1 @软件需求 - 属性2 @研发需求 - 属性3 @软需 - 属性4 @故事 - 属性5 @需求 +- 步骤2:URAndSR配置开启时 + - 属性1 @用户需求/软件需求 + - 属性2 @用户需求/研发需求 + - 属性3 @用户需求/软需 +- 步骤3:enableER配置开启时 + - 属性1 @业务需求/用户需求/软件需求 + - 属性2 @业务需求/用户需求/研发需求 + - 属性3 @业务需求/用户需求/软需 +- 步骤4:无数据情况 @0 +- 步骤5:边界情况空数据 @0 */ + +// 1. 导入依赖 include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/lib/custom.unittest.class.php'; -zenData('lang')->loadYaml('lang')->gen(5); -zenData('user')->gen(5); +// 2. 用户登录 su('admin'); -$customTester = new customTest(); -r($customTester->getURSRPairsTest()) && p('1,2,3,4,5') && e('软件需求,研发需求,软需,故事,需求'); // 获取需求概念集 \ No newline at end of file +// 3. 创建测试实例 +$customTest = new customTest(); + +// 4. 测试步骤 - 至少5个测试步骤 + +// 步骤1:正常情况获取需求概念集合 +global $config; +$config->URAndSR = 0; +$config->enableER = 0; +r($customTest->getURSRPairsTestWithData()) && p('1,2,3,4,5') && e('软件需求,研发需求,软需,故事,需求'); // 步骤1:正常情况获取需求概念集合 + +// 步骤2:URAndSR配置开启时 +$config->URAndSR = 1; +$config->enableER = 0; +r($customTest->getURSRPairsTestWithData()) && p('1,2,3') && e('用户需求/软件需求,用户需求/研发需求,用户需求/软需'); // 步骤2:URAndSR配置开启时 + +// 步骤3:enableER配置开启时 +$config->URAndSR = 1; +$config->enableER = 1; +r($customTest->getURSRPairsTestWithData()) && p('1,2,3') && e('业务需求/用户需求/软件需求,业务需求/用户需求/研发需求,业务需求/用户需求/软需'); // 步骤3:enableER配置开启时 + +// 步骤4:测试无数据情况 +$config->URAndSR = 0; +$config->enableER = 0; +r(count($customTest->getURSRPairsTestWithCleanData())) && p() && e(0); // 步骤4:无数据情况 + +// 步骤5:测试边界情况 +$config->URAndSR = 0; +$config->enableER = 0; +r(count($customTest->getURSRPairsTestWithCleanData())) && p() && e(0); // 步骤5:边界情况空数据 \ No newline at end of file diff --git a/module/custom/test/model/yaml/lang_getursrpairs.yaml b/module/custom/test/model/yaml/lang_getursrpairs.yaml new file mode 100644 index 0000000000..804489d7df --- /dev/null +++ b/module/custom/test/model/yaml/lang_getursrpairs.yaml @@ -0,0 +1,46 @@ +--- +title: 需求概念集合测试数据 +desc: 用于测试customModel::getURSRPairs()方法的语言表数据 + +fields: +- field: id + note: 唯一标识 + range: 1-10 + +- field: lang + note: 语言类型 + range: zh-cn + +- field: module + note: 模块名 + range: custom + +- field: section + note: 配置段 + range: URSRList + +- field: key + note: 配置键 + range: 1-10 + +- field: value + note: JSON格式的配置值 + range: | + {"ERName":"业务需求","SRName":"软件需求","URName":"用户需求"}, + {"ERName":"业务需求","SRName":"研发需求","URName":"用户需求"}, + {"ERName":"业务需求","SRName":"软需","URName":"用户需求"}, + {"ERName":"业务需求","SRName":"故事","URName":"史诗"}, + {"ERName":"业务需求","SRName":"需求","URName":"用户需求"}, + {"ERName":"业务需求","SRName":"用户故事","URName":"用户需求"}, + {"ERName":"业务需求","SRName":"功能需求","URName":"用户需求"}, + {"ERName":"业务需求","SRName":"特性","URName":"用户需求"}, + {"ERName":"业务需求","SRName":"任务","URName":"用户需求"}, + {"ERName":"业务需求","SRName":"工作项","URName":"用户需求"} + +- field: system + note: 是否系统级 + range: 1 + +- field: vision + note: 版本类型 + range: rnd \ No newline at end of file