znt/module/story/test/model/getdataofstoriesperchange.php

63 lines
2.6 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=测试 storyModel::getDataOfStoriesPerChange();
timeout=0
cid=18513
- 测试正常情况下按需求变更次数分组统计 @4
- 测试变更次数为0的需求(版本号为1)
- 第0条的name属性 @2
- 第0条的value属性 @3
- 测试不同storyType参数的影响
- 第3条的name属性 @0
- 第3条的value属性 @10
- 测试空数据情况下的处理 @2
- 测试数据排序的正确性第0条的value属性 @3
- 测试边界值版本号的处理第3条的value属性 @10
- 测试会话条件过滤的影响 @4
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 准备测试数据:创建不同版本的需求
$story = zenData('story');
$story->id->range('1-25');
$story->type->range('story{20},requirement{5}'); // 20个story5个requirement
$story->version->range('1{8},2{4},3{3},4{8},1{2}'); // 版本110个版本24个版本33个版本48个
$story->deleted->range('0');
$story->gen(25);
su('admin');
$storyTest = new storyModelTest();
// 设置会话条件
$_SESSION['storyOnlyCondition'] = true;
$_SESSION['storyQueryCondition'] = "`id` <= 25";
// 测试步骤1正常情况下按需求变更次数分组统计
r(count($storyTest->getDataOfStoriesPerChangeTest())) && p() && e('4'); // 测试正常情况下按需求变更次数分组统计
// 测试步骤2验证按value排序第一个分组的数据最小value
r($storyTest->getDataOfStoriesPerChangeTest()) && p('0:name,value') && e('2,3'); // 测试变更次数为0的需求(版本号为1)
// 测试步骤3验证版本1对应变更次数0存在于结果中第4个位置
r($storyTest->getDataOfStoriesPerChangeTest()) && p('3:name,value') && e('0,10'); // 测试不同storyType参数的影响
// 测试步骤4测试会话条件对数据的影响
$_SESSION['storyQueryCondition'] = "`id` <= 10";
r(count($storyTest->getDataOfStoriesPerChangeTest())) && p() && e('2'); // 测试空数据情况下的处理
// 测试步骤5验证数据按value排序第一个值应该是最小的
$_SESSION['storyQueryCondition'] = "`id` <= 25";
r($storyTest->getDataOfStoriesPerChangeTest()) && p('0:value') && e('3'); // 测试数据排序的正确性
// 测试步骤6验证最后一个值是最大的确保排序正确
r($storyTest->getDataOfStoriesPerChangeTest()) && p('3:value') && e('10'); // 测试边界值版本号的处理
// 测试步骤7测试没有设置requirement会话条件时返回所有数据
r(count($storyTest->getDataOfStoriesPerChangeTest('requirement'))) && p() && e('4'); // 测试会话条件过滤的影响