+ [misc] Add unit tests for bugZen::buildCreateForm() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -370,4 +370,51 @@ class bugZenTest extends baseTest
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test buildCreateForm method.
|
||||
*
|
||||
* @param object $bug
|
||||
* @param array $param
|
||||
* @param string $from
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function buildCreateFormTest(object $bug, array $param = array(), string $from = ''): array
|
||||
{
|
||||
$instance = $this->getInstance($this->moduleName, $this->className);
|
||||
|
||||
/* Initialize view users to avoid undefined property error. */
|
||||
if(!isset($instance->view->users))
|
||||
{
|
||||
$instance->view->users = $instance->loadModel('user')->getPairs('noletter');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$this->invokeArgs('buildCreateForm', [$bug, $param, $from]);
|
||||
}
|
||||
catch(Throwable $e)
|
||||
{
|
||||
return array('error' => $e->getMessage());
|
||||
}
|
||||
|
||||
if(dao::isError()) return array('error' => dao::getError());
|
||||
|
||||
return array(
|
||||
'title' => $instance->view->title ?? '',
|
||||
'productMembers' => !empty($instance->view->productMembers) ? count($instance->view->productMembers) : 0,
|
||||
'gobackLink' => $instance->view->gobackLink ?? '',
|
||||
'productName' => $instance->view->productName ?? '',
|
||||
'productsCount' => !empty($instance->view->products) ? count($instance->view->products) : 0,
|
||||
'projectsCount' => !empty($instance->view->projects) ? count($instance->view->projects) : 0,
|
||||
'executionsCount' => !empty($instance->view->executions) ? count($instance->view->executions) : 0,
|
||||
'branchesCount' => !empty($instance->view->branches) ? count($instance->view->branches) : 0,
|
||||
'buildsCount' => !empty($instance->view->builds) ? count($instance->view->builds) : 0,
|
||||
'moduleOptionMenuCount' => !empty($instance->view->moduleOptionMenu) ? count($instance->view->moduleOptionMenu) : 0,
|
||||
'resultFilesCount' => !empty($instance->view->resultFiles) ? count($instance->view->resultFiles) : 0,
|
||||
'plansCount' => !empty($instance->view->plans) ? count($instance->view->plans) : 0,
|
||||
'casesCount' => !empty($instance->view->cases) ? count($instance->view->cases) : 0,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+105
@@ -0,0 +1,105 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 bugZen::buildCreateForm();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:正常情况下验证产品成员数量属性productMembers @11
|
||||
- 步骤2:from='global'的情况属性gobackLink @buildcreateform.php?m=bug&f=browse&productID=1
|
||||
- 步骤3:有resultID和stepIdList的情况属性resultFilesCount @0
|
||||
- 步骤4:验证产品和项目数据
|
||||
- 属性productsCount @5
|
||||
- 属性projectsCount @0
|
||||
- 步骤5:验证执行和构建数据
|
||||
- 属性executionsCount @0
|
||||
- 属性buildsCount @2
|
||||
- 步骤6:验证模块和分支数据
|
||||
- 属性moduleOptionMenuCount @4
|
||||
- 属性branchesCount @1
|
||||
- 步骤7:验证计划和用例数据
|
||||
- 属性plansCount @3
|
||||
- 属性casesCount @4
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/zen.class.php';
|
||||
|
||||
zenData('product')->gen(5);
|
||||
zenData('project')->gen(5);
|
||||
zenData('bug')->gen(10);
|
||||
zenData('build')->gen(5);
|
||||
zenData('story')->gen(5);
|
||||
zenData('task')->gen(5);
|
||||
zenData('case')->gen(5);
|
||||
zenData('user')->gen(10);
|
||||
zenData('module')->gen(5);
|
||||
zenData('branch')->gen(3);
|
||||
zenData('productplan')->gen(5);
|
||||
|
||||
su('admin');
|
||||
|
||||
$bugTest = new bugZenTest();
|
||||
|
||||
$bug1 = (object)array(
|
||||
'id' => 0,
|
||||
'productID' => 1,
|
||||
'product' => 1,
|
||||
'branch' => '0',
|
||||
'project' => 1,
|
||||
'projectID' => 1,
|
||||
'execution' => 1,
|
||||
'executionID' => 1,
|
||||
'module' => 0,
|
||||
'moduleID' => 0,
|
||||
'assignedTo' => 'admin',
|
||||
'openedBy' => 'admin',
|
||||
'status' => 'active'
|
||||
);
|
||||
|
||||
$bug2 = (object)array(
|
||||
'id' => 0,
|
||||
'productID' => 2,
|
||||
'product' => 2,
|
||||
'branch' => '0',
|
||||
'project' => 2,
|
||||
'projectID' => 2,
|
||||
'execution' => 2,
|
||||
'executionID' => 2,
|
||||
'module' => 0,
|
||||
'moduleID' => 0,
|
||||
'assignedTo' => 'user1',
|
||||
'openedBy' => 'admin',
|
||||
'status' => 'active'
|
||||
);
|
||||
|
||||
$bug3 = (object)array(
|
||||
'id' => 0,
|
||||
'productID' => 1,
|
||||
'product' => 1,
|
||||
'branch' => '1',
|
||||
'project' => 1,
|
||||
'projectID' => 1,
|
||||
'execution' => 1,
|
||||
'executionID' => 1,
|
||||
'module' => 1,
|
||||
'moduleID' => 1,
|
||||
'assignedTo' => 'admin',
|
||||
'openedBy' => 'admin',
|
||||
'status' => 'active'
|
||||
);
|
||||
|
||||
$param1 = array('resultID' => 0, 'stepIdList' => '', 'executionID' => 1, 'bugID' => 0);
|
||||
$param2 = array('resultID' => 1, 'stepIdList' => '1_2_3', 'executionID' => 2, 'bugID' => 0);
|
||||
$param3 = array('resultID' => 0, 'stepIdList' => '', 'executionID' => 1, 'bugID' => 0);
|
||||
|
||||
r($bugTest->buildCreateFormTest($bug1, $param1, '')) && p('productMembers') && e('11'); // 步骤1:正常情况下验证产品成员数量
|
||||
r($bugTest->buildCreateFormTest($bug1, $param1, 'global')) && p('gobackLink') && e('buildcreateform.php?m=bug&f=browse&productID=1'); // 步骤2:from='global'的情况
|
||||
r($bugTest->buildCreateFormTest($bug2, $param2, '')) && p('resultFilesCount') && e('0'); // 步骤3:有resultID和stepIdList的情况
|
||||
r($bugTest->buildCreateFormTest($bug1, $param1, '')) && p('productsCount,projectsCount') && e('5,0'); // 步骤4:验证产品和项目数据
|
||||
r($bugTest->buildCreateFormTest($bug1, $param1, '')) && p('executionsCount,buildsCount') && e('0,2'); // 步骤5:验证执行和构建数据
|
||||
r($bugTest->buildCreateFormTest($bug3, $param3, '')) && p('moduleOptionMenuCount,branchesCount') && e('4,1'); // 步骤6:验证模块和分支数据
|
||||
r($bugTest->buildCreateFormTest($bug1, $param1, '')) && p('plansCount,casesCount') && e('3,4'); // 步骤7:验证计划和用例数据
|
||||
Reference in New Issue
Block a user