znt/module/bug/test/zen/preparecreateextras.php

92 lines
2.8 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
$story = zenData('story');
$story->id->range('1-5');
$story->version->range('1-3');
$story->title->range('需求{1-5}');
$story->gen(5);
$case = zenData('case');
$case->id->range('1-5');
$case->version->range('1-3');
$case->title->range('用例{1-5}');
$case->gen(5);
su('admin');
/**
title=测试 bugZen::prepareCreateExtras();
timeout=0
cid=15466
- 执行invokeArgs($zen模块的newInstance方法参数是, [$formData1] 属性project @123
- 执行$result2属性assignedDate @datetime
- 执行invokeArgs($zen模块的newInstance方法参数是, [$formData3] 属性storyVersion @2
- 执行invokeArgs($zen模块的newInstance方法参数是, [$formData4]
- 属性caseVersion @2
- 属性result @0
- 执行project) || $result5模块的project == 0方法 @1
*/
global $tester, $app;
$app->rawModule = 'bug';
$app->rawMethod = 'create';
// 设置session和配置
$tester->session->set('project', 123);
// 创建测试用的form对象
function createFormMock($assignedTo, $story, $case, $fromCase = 0) {
global $tester;
// 设置POST数据模拟表单提交
$_POST['fromCase'] = $fromCase;
$_POST['assignedTo'] = $assignedTo;
$_POST['story'] = $story > 0 ? $story : '';
$_POST['case'] = $case;
$_POST['title'] = 'Test Bug';
$_POST['type'] = 'codeerror';
$_POST['product'] = 1;
$_POST['execution'] = 0;
$_POST['openedBuild'] = 'trunk';
$_POST['pri'] = 3;
$_POST['severity'] = 3;
$_POST['steps'] = 'Test steps';
// 使用真实的form类创建对象
$formData = form::data($tester->config->bug->form->create);
return $formData;
}
$zen = initReference('bug');
$func = $zen->getMethod('prepareCreateExtras');
// 测试1非QA组设置项目
$tester->lang->navGroup->bug = 'product';
$formData1 = createFormMock('user1', 1, 0);
r($func->invokeArgs($zen->newInstance(), [$formData1])) && p('project') && e('123');
// 测试2指派用户设置日期
$formData2 = createFormMock('user1', 0, 0);
$result2 = $func->invokeArgs($zen->newInstance(), [$formData2]);
if(isset($result2->assignedDate) && $result2->assignedDate) $result2->assignedDate = 'datetime';
r($result2) && p('assignedDate') && e('datetime');
// 测试3关联需求设置版本
$formData3 = createFormMock('', 2, 0);
r($func->invokeArgs($zen->newInstance(), [$formData3])) && p('storyVersion') && e('2');
// 测试4从用例创建设置版本
$formData4 = createFormMock('', 0, 1, 2);
r($func->invokeArgs($zen->newInstance(), [$formData4])) && p('caseVersion,result') && e('2,0');
// 测试5QA组不设置项目
$tester->lang->navGroup->bug = 'qa';
$formData5 = createFormMock('', 0, 0);
$result5 = $func->invokeArgs($zen->newInstance(), [$formData5]);
r(!isset($result5->project) || $result5->project == 0) && p() && e('1');