* [misc] Enhance unit tests for dataviewModel::checkUniColumn() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:15:51 +08:00
co-authored by Claude
parent 12265cd67e
commit ac8263bccd
2 changed files with 82 additions and 9 deletions
@@ -99,4 +99,22 @@ class dataviewTest
return $result;
}
/**
* Test checkUniColumn method.
*
* @param string $sql
* @param string $driverName
* @param bool $repeat
* @param array $columns
* @access public
* @return mixed
*/
public function checkUniColumnTest($sql, $driverName = 'mysql', $repeat = false, $columns = array())
{
$result = $this->objectModel->checkUniColumn($sql, $driverName, $repeat, $columns);
if(dao::isError()) return dao::getError();
return $result;
}
}
+64 -9
View File
@@ -1,20 +1,75 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
zenData('product')->gen(10);
/**
title=测试 dataviewModel::checkUniColumn();
timeout=0
cid=1
cid=0
- 检查产品表是否有重复数据。 @1
- 执行dataviewTest模块的checkUniColumnTest方法,参数是'', 'mysql', false, $uniqueColumns @1
- 执行dataviewTest模块的checkUniColumnTest方法,参数是'', 'mysql', false, $duplicateColumns @0
- 执行dataviewTest模块的checkUniColumnTest方法,参数是'', 'mysql', true, $duplicateColumns @0
- 执行dataviewTest模块的checkUniColumnTest方法,参数是'', 'mysql', false, $emptyColumns @1
- 执行dataviewTest模块的checkUniColumnTest方法,参数是'', 'mysql', false, $mixedColumns @0
- 执行dataviewTest模块的checkUniColumnTest方法,参数是'', 'mysql', true, $multiDuplicateColumns 属性1 @0~~id~~status
属性id @0~~id~~status
属性status @0~~id~~status
- 执行dataviewTest模块的checkUniColumnTest方法,参数是'', 'mysql', false, $singleColumn @1
*/
global $tester;
$tester->loadModel('dataview');
r($tester->dataview->checkUniColumn('select * from zt_product')) && p() && e('1'); //检查产品表是否有重复数据。
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/dataview.unittest.class.php';
su('admin');
$dataviewTest = new dataviewTest();
// 测试数据1:唯一列数组
$uniqueColumns = array(
array('name' => 'id'),
array('name' => 'name'),
array('name' => 'code')
);
// 测试数据2:包含重复列的数组
$duplicateColumns = array(
array('name' => 'id'),
array('name' => 'name'),
array('name' => 'id')
);
// 测试数据3:空数组
$emptyColumns = array();
// 测试数据4:混合重复列
$mixedColumns = array(
array('name' => 'id'),
array('name' => 'name'),
array('name' => 'status'),
array('name' => 'name'),
array('name' => 'type')
);
// 测试数据5:多个重复列
$multiDuplicateColumns = array(
array('name' => 'id'),
array('name' => 'name'),
array('name' => 'id'),
array('name' => 'status'),
array('name' => 'status')
);
// 测试数据6:单列数组
$singleColumn = array(
array('name' => 'id')
);
r($dataviewTest->checkUniColumnTest('', 'mysql', false, $uniqueColumns)) && p() && e('1');
r($dataviewTest->checkUniColumnTest('', 'mysql', false, $duplicateColumns)) && p() && e('0');
r($dataviewTest->checkUniColumnTest('', 'mysql', true, $duplicateColumns)) && p('0') && e('0');
r($dataviewTest->checkUniColumnTest('', 'mysql', false, $emptyColumns)) && p() && e('1');
r($dataviewTest->checkUniColumnTest('', 'mysql', false, $mixedColumns)) && p() && e('0');
r($dataviewTest->checkUniColumnTest('', 'mysql', true, $multiDuplicateColumns)) && p('1,id,status') && e('0~~id~~status');
r($dataviewTest->checkUniColumnTest('', 'mysql', false, $singleColumn)) && p() && e('1');