diff --git a/module/transfer/test/lib/transfer.unittest.class.php b/module/transfer/test/lib/transfer.unittest.class.php index 400c73bb51..2c7a3c7c90 100644 --- a/module/transfer/test/lib/transfer.unittest.class.php +++ b/module/transfer/test/lib/transfer.unittest.class.php @@ -16,6 +16,7 @@ class transferTest { global $tester; $this->objectModel = $tester->loadModel('transfer'); + $this->objectTao = $tester->loadTao('transfer'); } /** @@ -498,4 +499,60 @@ class transferTest return array('error' => $e->getMessage()); } } + + /** + * Test format method. + * + * @param string $module + * @param string $filter + * @access public + * @return mixed + */ + public function formatTest(string $module = '', string $filter = '') + { + // 如果模块为空,返回错误信息 + if(empty($module)) return 'Module is empty'; + + global $tester, $app; + + try + { + // 设置临时文件路径和会话数据 + $tmpPath = $tester->loadModel('file')->getPathOfImportedFile(); + if(!is_dir($tmpPath)) mkdir($tmpPath, 0755, true); + + // 创建简单的CSV测试文件 + $testCSVPath = $tmpPath . '/test_import.csv'; + $testContent = "标题,状态,优先级\n测试需求1,激活,高\n测试需求2,已关闭,中\n"; + file_put_contents($testCSVPath, $testContent); + + // 设置会话数据 + $_SESSION['fileImportFileName'] = $testCSVPath; + $_SESSION['fileImportExtension'] = 'csv'; + + // 设置应用方法名 + $app->methodName = 'import'; + $app->rawModule = $module; + + // 初始化配置 + $this->initConfig($module); + + // 通过TAO层调用format方法 + $result = $this->objectTao->format($module, $filter); + if(dao::isError()) return dao::getError(); + + return $result ? 'Success' : 'Failed'; + } + catch(Exception $e) + { + return array('error' => $e->getMessage()); + } + finally + { + // 清理临时文件 + if(isset($testCSVPath) && file_exists($testCSVPath)) unlink($testCSVPath); + if(isset($_SESSION['fileImportFileName'])) unset($_SESSION['fileImportFileName']); + if(isset($_SESSION['fileImportExtension'])) unset($_SESSION['fileImportExtension']); + } + } } diff --git a/module/transfer/test/model/format.php b/module/transfer/test/model/format.php new file mode 100755 index 0000000000..72f23605b8 --- /dev/null +++ b/module/transfer/test/model/format.php @@ -0,0 +1,42 @@ +#!/usr/bin/env php +id->range('1-10'); +$table->title->range('需求1,需求2,需求3,需求4,需求5,需求6,需求7,需求8,需求9,需求10'); +$table->status->range('active{5},closed{3},draft{2}'); +$table->pri->range('1{3},2{4},3{3}'); +$table->product->range('1{8},2{2}'); +$table->gen(10); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$transferTest = new transferTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +r($transferTest->formatTest('', '')) && p() && e('Module is empty'); // 步骤1:空模块情况 +r($transferTest->formatTest('story', '')) && p('error') && e('~~'); // 步骤2:正常模块输入 +r($transferTest->formatTest('task', '')) && p('error') && e('~~'); // 步骤3:任务模块测试 +r($transferTest->formatTest('story', 'active')) && p('error') && e('~~'); // 步骤4:带过滤条件 +r($transferTest->formatTest('bug', '')) && p('error') && e('~~'); // 步骤5:缺陷模块测试 \ No newline at end of file