+ [misc] Add unit tests for pivotModel::genOriginSheet() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-15 15:06:20 +08:00
co-authored by Claude
parent 2b762b1477
commit be926345d5
2 changed files with 108 additions and 0 deletions
@@ -895,4 +895,25 @@ class pivotTest
return $result;
}
/**
* Test genOriginSheet method.
*
* @param array $fields
* @param array $settings
* @param string $sql
* @param array|false $filters
* @param array $langs
* @param string $driver
* @access public
* @return array|string
*/
public function genOriginSheetTest($fields, $settings, $sql, $filters, $langs = array(), $driver = 'mysql')
{
if(dao::isError()) return dao::getError();
$result = $this->objectModel->genOriginSheet($fields, $settings, $sql, $filters, $langs, $driver);
return $result;
}
}
+87
View File
@@ -0,0 +1,87 @@
#!/usr/bin/env php
<?php
/**
title=测试 pivotModel::genOriginSheet();
timeout=0
cid=0
- 步骤1:正常情况 @1
- 步骤2:测试钻取设置 @1
- 步骤3:测试空SQL @1
- 步骤4:测试无效过滤器 @1
- 步骤5:测试语言配置 @1
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/pivot.unittest.class.php';
// 2. zendata数据准备(根据需要配置)
$table = zenData('user');
$table->id->range('1-5');
$table->account->range('admin,user1,user2,user3,user4');
$table->realname->range('管理员,用户1,用户2,用户3,用户4');
$table->role->range('admin{1},dev{2},qa{2}');
$table->dept->range('1{2},2{2},3{1}');
$table->deleted->range('0');
$table->gen(5);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$pivotTest = new pivotTest();
// 5. 强制要求:必须包含至少5个测试步骤
$result1 = $pivotTest->genOriginSheetTest(
array('account' => array('object' => 'user', 'field' => 'account', 'type' => 'string')),
array(),
'SELECT account FROM zt_user WHERE deleted = "0" LIMIT 5',
array(),
array(),
'mysql'
);
r(count($result1) == 2) && p() && e('1'); // 步骤1:正常情况
$result2 = $pivotTest->genOriginSheetTest(
array('account' => array('object' => 'user', 'field' => 'account', 'type' => 'string'), 'role' => array('object' => 'user', 'field' => 'role', 'type' => 'string')),
array('drills' => array('account' => array(array('queryField' => 'account', 'field' => 'account')))),
'SELECT account, role FROM zt_user WHERE deleted = "0" LIMIT 3',
array(),
array(),
'mysql'
);
r(count($result2) == 2) && p() && e('1'); // 步骤2:测试钻取设置
$result3 = $pivotTest->genOriginSheetTest(
array('id' => array('object' => 'user', 'field' => 'id', 'type' => 'number')),
array(),
'SELECT id FROM zt_user WHERE id = 0',
array(),
array(),
'mysql'
);
r(count($result3) == 2) && p() && e('1'); // 步骤3:测试空SQL
$result4 = $pivotTest->genOriginSheetTest(
array('account' => array('object' => 'user', 'field' => 'account', 'type' => 'string')),
array(),
'SELECT account FROM zt_user WHERE deleted = "0" LIMIT 2',
false,
array(),
'mysql'
);
r(count($result4) == 2) && p() && e('1'); // 步骤4:测试无效过滤器
$result5 = $pivotTest->genOriginSheetTest(
array('account' => array('object' => 'user', 'field' => 'account', 'type' => 'string')),
array(),
'SELECT account FROM zt_user WHERE deleted = "0" LIMIT 2',
array(),
array('account' => '用户名'),
'mysql'
);
r(count($result5) == 2) && p() && e('1'); // 步骤5:测试语言配置