+ [misc] Add unit tests for productZen::saveSession4Roadmap() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -3972,4 +3972,64 @@ class productTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test saveSession4Roadmap method.
|
||||
*
|
||||
* @param string $currentURI
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function saveSession4RoadmapTest(string $currentURI = '/product/roadmap/'): array
|
||||
{
|
||||
global $tester;
|
||||
|
||||
try {
|
||||
$productZen = new productZen();
|
||||
|
||||
// 创建模拟app对象
|
||||
$mockApp = new class($currentURI) {
|
||||
private $uri;
|
||||
|
||||
public function __construct($uri)
|
||||
{
|
||||
$this->uri = $uri;
|
||||
}
|
||||
|
||||
public function getURI($flag = false): string
|
||||
{
|
||||
return $this->uri;
|
||||
}
|
||||
};
|
||||
$productZen->app = $mockApp;
|
||||
|
||||
// 创建模拟session对象
|
||||
$sessionData = array();
|
||||
$mockSession = new class($sessionData) {
|
||||
private $data;
|
||||
|
||||
public function __construct(&$data)
|
||||
{
|
||||
$this->data = &$data;
|
||||
}
|
||||
|
||||
public function set($key, $value, $module): bool
|
||||
{
|
||||
$this->data["{$module}_{$key}"] = $value;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
$productZen->session = $mockSession;
|
||||
|
||||
$method = $this->objectZen->getMethod('saveSession4Roadmap');
|
||||
$method->setAccessible(true);
|
||||
$method->invokeArgs($productZen, array());
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $sessionData;
|
||||
} catch (Exception $e) {
|
||||
return array('error' => $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 productZen::saveSession4Roadmap();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:正常情况属性product_releaseList @/product/roadmap/
|
||||
- 步骤2:另一个URI属性product_releaseList @/empty/test/
|
||||
- 步骤3:自定义URI属性product_releaseList @/custom/path/
|
||||
- 步骤4:验证productPlanList属性product_productPlanList @/test/uri/
|
||||
- 步骤5:完整验证
|
||||
- 属性product_releaseList @/final/test/
|
||||
- 属性product_productPlanList @/final/test/
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/product.unittest.class.php';
|
||||
|
||||
// 2. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 3. 创建测试实例(变量名与模块名一致)
|
||||
$productTest = new productTest();
|
||||
|
||||
// 4. 🔴 强制要求:必须包含至少5个测试步骤
|
||||
r($productTest->saveSession4RoadmapTest('/product/roadmap/')) && p('product_releaseList') && e('/product/roadmap/'); // 步骤1:正常情况
|
||||
r($productTest->saveSession4RoadmapTest('/empty/test/')) && p('product_releaseList') && e('/empty/test/'); // 步骤2:另一个URI
|
||||
r($productTest->saveSession4RoadmapTest('/custom/path/')) && p('product_releaseList') && e('/custom/path/'); // 步骤3:自定义URI
|
||||
r($productTest->saveSession4RoadmapTest('/test/uri/')) && p('product_productPlanList') && e('/test/uri/'); // 步骤4:验证productPlanList
|
||||
r($productTest->saveSession4RoadmapTest('/final/test/')) && p('product_releaseList,product_productPlanList') && e('/final/test/,/final/test/'); // 步骤5:完整验证
|
||||
Reference in New Issue
Block a user