+ [misc] Add unit tests for blockZen::printBlock4Json() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -5514,4 +5514,58 @@ class blockTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test printBlock4Json method.
|
||||
*
|
||||
* @param object|null $view
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function printBlock4JsonTest($view = null)
|
||||
{
|
||||
global $tester;
|
||||
|
||||
// 创建blockZen实例
|
||||
include_once dirname(__FILE__, 3) . '/model.php';
|
||||
|
||||
if (!class_exists('block')) {
|
||||
class_alias('blockModel', 'block');
|
||||
}
|
||||
|
||||
include_once dirname(__FILE__, 3) . '/zen.php';
|
||||
|
||||
$blockZen = new blockZen();
|
||||
$blockZen->block = $this->objectModel;
|
||||
|
||||
// 设置view对象
|
||||
if($view !== null) {
|
||||
$blockZen->view = $view;
|
||||
} else {
|
||||
// 创建默认view对象用于测试
|
||||
$blockZen->view = new stdclass();
|
||||
$blockZen->view->app = 'test_app';
|
||||
$blockZen->view->config = 'test_config';
|
||||
$blockZen->view->lang = 'test_lang';
|
||||
$blockZen->view->header = 'test_header';
|
||||
$blockZen->view->position = 'test_position';
|
||||
$blockZen->view->moduleTree = 'test_tree';
|
||||
$blockZen->view->testData = 'test_value';
|
||||
}
|
||||
|
||||
// 使用反射访问受保护的方法
|
||||
$reflection = new ReflectionClass($blockZen);
|
||||
$method = $reflection->getMethod('printBlock4Json');
|
||||
$method->setAccessible(true);
|
||||
|
||||
// 捕获输出
|
||||
ob_start();
|
||||
$result = $method->invoke($blockZen);
|
||||
$output = ob_get_clean();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
// 返回输出的JSON数据和实际结果
|
||||
return array('output' => $output, 'result' => $result, 'view' => $blockZen->view);
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 blockZen::printBlock4Json();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:验证testData属性保留第view条的testData属性 @test_value
|
||||
- 步骤2:验证app属性被移除第view条的app属性 @~~
|
||||
- 步骤3:验证config属性被移除第view条的config属性 @~~
|
||||
- 步骤4:验证lang属性被移除第view条的lang属性 @~~
|
||||
- 步骤5:验证header属性被移除第view条的header属性 @~~
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/block.unittest.class.php';
|
||||
|
||||
// 2. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 3. 创建测试实例(变量名与模块名一致)
|
||||
$blockTest = new blockTest();
|
||||
|
||||
// 4. 🔴 强制要求:必须包含至少5个测试步骤
|
||||
r($blockTest->printBlock4JsonTest()) && p('view:testData') && e('test_value'); // 步骤1:验证testData属性保留
|
||||
r($blockTest->printBlock4JsonTest()) && p('view:app') && e('~~'); // 步骤2:验证app属性被移除
|
||||
r($blockTest->printBlock4JsonTest()) && p('view:config') && e('~~'); // 步骤3:验证config属性被移除
|
||||
r($blockTest->printBlock4JsonTest()) && p('view:lang') && e('~~'); // 步骤4:验证lang属性被移除
|
||||
r($blockTest->printBlock4JsonTest()) && p('view:header') && e('~~'); // 步骤5:验证header属性被移除
|
||||
Reference in New Issue
Block a user