+ [misc] Add unit tests for indexZen::getViewMethodForAssetLib() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -32,4 +32,25 @@ class indexZenTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getViewMethodForAssetLib method.
|
||||
*
|
||||
* @param int $objectID
|
||||
* @param string $objectType
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function getViewMethodForAssetLibTest(int $objectID, string $objectType)
|
||||
{
|
||||
$reflection = new ReflectionClass('indexZen');
|
||||
$method = $reflection->getMethod('getViewMethodForAssetLib');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$indexZen = new indexZen();
|
||||
$result = $method->invoke($indexZen, $objectID, $objectType);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 indexZen::getViewMethodForAssetLib();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:doc对象,assetLibType为practice @practiceView
|
||||
- 步骤2:doc对象,assetLibType为component @componentView
|
||||
- 步骤3:不存在的doc对象 @0
|
||||
- 步骤4:非doc对象,有assetViewMethod配置 @storyView
|
||||
- 步骤5:无效objectType @0
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/index.unittest.class.php';
|
||||
|
||||
// 2. zendata数据准备(根据需要配置)
|
||||
$docTable = zenData('doc');
|
||||
$docTable->id->range('1-10');
|
||||
$docTable->vision->range('rnd');
|
||||
$docTable->project->range('0');
|
||||
$docTable->product->range('0');
|
||||
$docTable->execution->range('0');
|
||||
$docTable->lib->range('1-5');
|
||||
$docTable->title->range('测试文档1,测试文档2,测试文档3,测试文档4,测试文档5,测试文档6,测试文档7,测试文档8,测试文档9,测试文档10');
|
||||
$docTable->type->range('text');
|
||||
$docTable->status->range('normal');
|
||||
$docTable->acl->range('open');
|
||||
$docTable->assetLibType->range('practice,practice,practice,component,component,component,\'\',\'\',\'\',component');
|
||||
$docTable->addedBy->range('admin');
|
||||
$docTable->addedDate->range('`2023-01-01 10:00:00`');
|
||||
$docTable->deleted->range('0');
|
||||
$docTable->gen(10);
|
||||
|
||||
$storyTable = zenData('story');
|
||||
$storyTable->id->range('1-10');
|
||||
$storyTable->vision->range('rnd');
|
||||
$storyTable->product->range('1-3');
|
||||
$storyTable->title->range('测试需求1,测试需求2,测试需求3,测试需求4,测试需求5,测试需求6,测试需求7,测试需求8,测试需求9,测试需求10');
|
||||
$storyTable->type->range('story');
|
||||
$storyTable->status->range('active');
|
||||
$storyTable->lib->range('1,1,1,2,2,2,0,0,0,0');
|
||||
$storyTable->openedBy->range('admin');
|
||||
$storyTable->openedDate->range('`2023-01-01 10:00:00`');
|
||||
$storyTable->deleted->range('0');
|
||||
$storyTable->gen(10);
|
||||
|
||||
// 3. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 4. 创建测试实例(变量名与模块名一致)
|
||||
$indexTest = new indexZenTest();
|
||||
|
||||
global $config;
|
||||
|
||||
// 设置maxVersion配置
|
||||
$config->maxVersion = '1.0.0';
|
||||
if(!isset($config->action)) $config->action = new stdclass();
|
||||
$config->action->assetViewMethod = array(
|
||||
'story' => 'storyView',
|
||||
'task' => 'taskView'
|
||||
);
|
||||
|
||||
// 5. 🔴 强制要求:必须包含至少5个测试步骤
|
||||
r($indexTest->getViewMethodForAssetLibTest(1, 'doc')) && p() && e('practiceView'); // 步骤1:doc对象,assetLibType为practice
|
||||
r($indexTest->getViewMethodForAssetLibTest(4, 'doc')) && p() && e('componentView'); // 步骤2:doc对象,assetLibType为component
|
||||
r($indexTest->getViewMethodForAssetLibTest(99, 'doc')) && p() && e('0'); // 步骤3:不存在的doc对象
|
||||
r($indexTest->getViewMethodForAssetLibTest(1, 'story')) && p() && e('storyView'); // 步骤4:非doc对象,有assetViewMethod配置
|
||||
r($indexTest->getViewMethodForAssetLibTest(1, 'invalid')) && p() && e('0'); // 步骤5:无效objectType
|
||||
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: Doc表的getViewMethodForAssetLib方法测试数据
|
||||
desc: 用于测试资产库视图方法获取的文档数据
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
range: 1-10
|
||||
- field: vision
|
||||
range: rnd
|
||||
- field: project
|
||||
range: 0
|
||||
- field: product
|
||||
range: 0
|
||||
- field: execution
|
||||
range: 0
|
||||
- field: lib
|
||||
range: 1-5
|
||||
- field: template
|
||||
range: ''
|
||||
- field: templateType
|
||||
range: ''
|
||||
- field: templateDesc
|
||||
range: ''
|
||||
- field: chapterType
|
||||
range: ''
|
||||
- field: title
|
||||
range: 测试文档{@}
|
||||
- field: keywords
|
||||
range: test,doc
|
||||
- field: type
|
||||
range: text
|
||||
- field: status
|
||||
range: normal
|
||||
- field: acl
|
||||
range: open
|
||||
- field: assetLibType
|
||||
range: practice{3},component{3},''{4}
|
||||
- field: from
|
||||
range: 0
|
||||
- field: fromVersion
|
||||
range: 1
|
||||
- field: draft
|
||||
range: ''
|
||||
- field: collects
|
||||
range: 0
|
||||
- field: addedBy
|
||||
range: admin
|
||||
- field: addedDate
|
||||
range: '2023-01-01 10:00:00'
|
||||
- field: assignedTo
|
||||
range: ''
|
||||
- field: assignedDate
|
||||
range: '0000-00-00 00:00:00'
|
||||
- field: approvedDate
|
||||
range: '0000-00-00'
|
||||
- field: editedBy
|
||||
range: ''
|
||||
- field: editedDate
|
||||
range: '0000-00-00 00:00:00'
|
||||
- field: lastEditedBy
|
||||
range: ''
|
||||
- field: lastEditedDate
|
||||
range: '0000-00-00 00:00:00'
|
||||
- field: version
|
||||
range: 1
|
||||
- field: deleted
|
||||
range: '0'
|
||||
@@ -0,0 +1,93 @@
|
||||
---
|
||||
title: Story表的getViewMethodForAssetLib方法测试数据
|
||||
desc: 用于测试资产库视图方法获取的需求数据
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
range: 1-10
|
||||
- field: vision
|
||||
range: rnd
|
||||
- field: product
|
||||
range: 1-3
|
||||
- field: branch
|
||||
range: 0
|
||||
- field: module
|
||||
range: 0
|
||||
- field: plan
|
||||
range: ''
|
||||
- field: source
|
||||
range: ''
|
||||
- field: sourceNote
|
||||
range: ''
|
||||
- field: fromBug
|
||||
range: 0
|
||||
- field: feedback
|
||||
range: 0
|
||||
- field: title
|
||||
range: 测试需求{@}
|
||||
- field: keywords
|
||||
range: test,story
|
||||
- field: type
|
||||
range: story
|
||||
- field: category
|
||||
range: feature
|
||||
- field: pri
|
||||
range: 3
|
||||
- field: estimate
|
||||
range: 0
|
||||
- field: status
|
||||
range: active
|
||||
- field: subStatus
|
||||
range: ''
|
||||
- field: color
|
||||
range: ''
|
||||
- field: stage
|
||||
range: wait
|
||||
- field: lib
|
||||
range: [1{3}, 2{3}, 0{4}]
|
||||
- field: fromStory
|
||||
range: 0
|
||||
- field: fromVersion
|
||||
range: 1
|
||||
- field: openedBy
|
||||
range: admin
|
||||
- field: openedDate
|
||||
range: '2023-01-01 10:00:00'
|
||||
- field: assignedTo
|
||||
range: ''
|
||||
- field: assignedDate
|
||||
range: '0000-00-00 00:00:00'
|
||||
- field: approvedDate
|
||||
range: '0000-00-00'
|
||||
- field: lastEditedBy
|
||||
range: ''
|
||||
- field: lastEditedDate
|
||||
range: '0000-00-00 00:00:00'
|
||||
- field: changedBy
|
||||
range: ''
|
||||
- field: changedDate
|
||||
range: '0000-00-00 00:00:00'
|
||||
- field: closedBy
|
||||
range: ''
|
||||
- field: closedDate
|
||||
range: '0000-00-00 00:00:00'
|
||||
- field: closedReason
|
||||
range: ''
|
||||
- field: toBug
|
||||
range: 0
|
||||
- field: childStories
|
||||
range: ''
|
||||
- field: linkStories
|
||||
range: ''
|
||||
- field: linkRequirements
|
||||
range: ''
|
||||
- field: duplicateStory
|
||||
range: 0
|
||||
- field: reviewedBy
|
||||
range: ''
|
||||
- field: reviewedDate
|
||||
range: '0000-00-00'
|
||||
- field: version
|
||||
range: 1
|
||||
- field: deleted
|
||||
range: '0'
|
||||
Reference in New Issue
Block a user