znt/module/testtask/test/model/importcaseofunitresult.php

64 lines
3 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
/**
title=测试 testtaskModel::importCaseOfUnitResult();
timeout=0
cid=19198
- 步骤1更新已有用例 @1
- 步骤2创建新用例 @6
- 步骤3返回已存在用例ID @3
- 步骤4创建带步骤的用例 @7
- 步骤5测试空existCases @8
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. zendata数据准备根据需要配置
$case = zenData('case');
$case->id->range('1-5');
$case->title->range('测试用例1,测试用例2,已存在用例,单元测试用例,功能测试用例');
$case->product->range('1');
$case->module->range('1');
$case->type->range('unit');
$case->auto->range('unit');
$case->status->range('normal');
$case->version->range('1');
$case->openedBy->range('admin');
$case->openedDate->range('`2024-01-01 10:00:00`');
$case->gen(5);
zenData('webhook')->gen(0);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$testtaskTest = new testtaskModelTest();
$testtaskModel = $testtaskTest->objectModel;
// 5. 🔴 强制要求必须包含至少5个测试步骤
$cases = [
(object)['id' => 1, 'title' => '更新测试用例', 'type' => 'unit', 'auto' => 'unit', 'product' => 1],
(object)['title' => '新建单元测试用例', 'type' => 'unit', 'auto' => 'unit', 'product' => 1, 'module' => 1, 'openedBy' => 'admin', 'openedDate' => '2024-01-01 10:00:00', 'status' => 'normal', 'version' => 1],
(object)['title' => '测试用例1', 'type' => 'unit', 'auto' => 'unit', 'product' => 1],
(object)['title' => '带步骤的新用例', 'type' => 'unit', 'auto' => 'unit', 'product' => 1, 'module' => 1, 'openedBy' => 'admin', 'openedDate' => '2024-01-01 10:00:00', 'status' => 'normal', 'version' => 1, 'steps' => [(object)['desc' => '测试步骤1', 'expect' => '预期结果1'], (object)['desc' => '测试步骤2', 'expect' => '预期结果2']]],
(object)['title' => '空existCases测试', 'type' => 'unit', 'auto' => 'unit', 'product' => 1, 'module' => 1, 'openedBy' => 'admin', 'openedDate' => '2024-01-01 10:00:00', 'status' => 'normal', 'version' => 1]
];
$testtaskModel->loadModel('action');
$reflection = new ReflectionClass($testtaskModel);
$method = $reflection->getMethod('importCaseOfUnitResult');
$method->setAccessible(true);
r($method->invokeArgs($testtaskModel, [&$cases[0], []])) && p('0') && e('1'); // 步骤1更新已有用例
r($method->invokeArgs($testtaskModel, [&$cases[1], []])) && p('0') && e('6'); // 步骤2创建新用例
r($method->invokeArgs($testtaskModel, [&$cases[2], ['测试用例1' => 3]])) && p('0') && e('3'); // 步骤3返回已存在用例ID
r($method->invokeArgs($testtaskModel, [&$cases[3], []])) && p('0') && e('7'); // 步骤4创建带步骤的用例
r($method->invokeArgs($testtaskModel, [&$cases[4], []])) && p('0') && e('8'); // 步骤5测试空existCases