mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
添加loader类单元测试
This commit is contained in:
@@ -34,6 +34,8 @@ class Loader
|
||||
// 记录加载信息
|
||||
APP_DEBUG && self::$load[] = self::$map[$class];
|
||||
include self::$map[$class];
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} elseif ($file = self::findFileInComposer($class)) {
|
||||
// Composer自动加载
|
||||
@@ -43,7 +45,7 @@ class Loader
|
||||
} else {
|
||||
// 命名空间自动加载
|
||||
if (!strpos($class, '\\')) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
list($name, $class) = explode('\\', $class, 2);
|
||||
if (isset(self::$namespace[$name])) {
|
||||
@@ -53,7 +55,7 @@ class Loader
|
||||
// 扩展类库命名空间
|
||||
$path = EXTEND_PATH . $name . DS;
|
||||
} else {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
$filename = $path . str_replace('\\', DS, $class) . EXT;
|
||||
if (is_file($filename)) {
|
||||
@@ -66,8 +68,10 @@ class Loader
|
||||
include $filename;
|
||||
} else {
|
||||
Log::record('autoloader error : ' . $filename, 'notice');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// 注册classmap
|
||||
@@ -199,8 +203,6 @@ class Loader
|
||||
$class = str_replace(['.', '#'], [DS, '.'], $class);
|
||||
if (isset($_file[$class . $baseUrl])) {
|
||||
return true;
|
||||
} else {
|
||||
$_file[$class . $baseUrl] = true;
|
||||
}
|
||||
|
||||
if (empty($baseUrl)) {
|
||||
@@ -228,6 +230,7 @@ class Loader
|
||||
return false;
|
||||
}
|
||||
include $filename;
|
||||
$_file[$class . $baseUrl] = true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
7
tests/thinkphp/library/think/loader/test/Hello.php
Normal file
7
tests/thinkphp/library/think/loader/test/Hello.php
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
namespace top\test;
|
||||
|
||||
class Hello
|
||||
{
|
||||
|
||||
}
|
||||
63
tests/thinkphp/library/think/loaderTest.php
Normal file
63
tests/thinkphp/library/think/loaderTest.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Loader测试
|
||||
* @author liu21st <liu21st@gmail.com>
|
||||
*/
|
||||
|
||||
namespace tests\thinkphp\library\think;
|
||||
|
||||
use think\Loader;
|
||||
|
||||
class loaderTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
||||
public function testAutoload()
|
||||
{
|
||||
$this->assertEquals(true, Loader::autoload('think\Session'));
|
||||
$this->assertEquals(false, Loader::autoload('think\COOKIE'));
|
||||
$this->assertEquals(false, Loader::autoload('\think\Url'));
|
||||
$this->assertEquals(false, Loader::autoload('think\Test'));
|
||||
$this->assertEquals(false, Loader::autoload('my\HelloTest'));
|
||||
}
|
||||
|
||||
public function testAddMap()
|
||||
{
|
||||
Loader::addMap('my\hello\Test', 'Test.php');
|
||||
$this->assertEquals(false, Loader::autoload('my\hello\Test'));
|
||||
}
|
||||
|
||||
public function testAddNamespace()
|
||||
{
|
||||
Loader::addNamespace('top', __DIR__ . DS . 'loader' . DS);
|
||||
$this->assertEquals(true, Loader::autoload('top\test\Hello'));
|
||||
}
|
||||
|
||||
public function testImport()
|
||||
{
|
||||
$this->assertEquals(true, Loader::import('think.log.driver.Sae'));
|
||||
$this->assertEquals(false, Loader::import('think.log.driver.MyTest'));
|
||||
}
|
||||
|
||||
public function testParseName()
|
||||
{
|
||||
$this->assertEquals('HelloTest', Loader::parseName('hello_test', 1));
|
||||
$this->assertEquals('hello_test', Loader::parseName('HelloTest', 0));
|
||||
}
|
||||
|
||||
public function testParseClass()
|
||||
{
|
||||
$this->assertEquals('app\index\controller\User', Loader::parseClass('index', 'controller', 'user'));
|
||||
$this->assertEquals('app\index\controller\user\Type', Loader::parseClass('index', 'controller', 'user.type'));
|
||||
$this->assertEquals('app\admin\model\UserType', Loader::parseClass('admin', 'model', 'user_type'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user