本文介绍了详解Yaf框架PHPUnit集成测试方法,分享给大家,具体如下:
测试目录
1
2
3
4
5
6
7
8
9
10
|
test ├── TestCase.php ├── bootstrap.php ├── controller │ ├── BaseControllerTest.php │ └── IndexControllerTest.php ├── model ├── phpunit.xml └── service └── TokenServiceTest.php |
phpunit.xml
1
2
3
4
5
|
<? xml version = "1.0" encoding = "UTF-8" ?> < phpunit xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "https://schema.phpunit.de/6.2/phpunit.xsd" extensionsDirectory = "dbunit.phar" bootstrap = "./bootstrap.php" > </ phpunit > |
bootstrap.php 测试框架入口文件
1
2
3
|
define( "APP_PATH" , realpath (dirname( __FILE__ ) . '/../' )); date_default_timezone_set( "Asia/Shanghai" ); define( "TEST_DIR" , __DIR__); |
TestCase.php 测试文件基础类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
namespace test; use PHPUnit\Framework\TestCase as Test; use Yaf\Application; class TestCase extends Test { protected static $_application = null; protected function setUp() { self:: $_application = $this ->getApplication(); parent::setUp(); } public function testAppPath() { $this ->assertEquals( '/Users/xiong/Sites/kyYaf' , APP_PATH); } public function testApp() { $this ->assertEquals(Application::app(), self:: $_application ); } public function testApplication() { $this ->assertNotNull(self:: $_application ); } public function getApplication() { if (self:: $_application == null) { $this ->setApplication(); } return self:: $_application ; } public function setApplication() { $application = new Application(APP_PATH . '/conf/application.ini' ); $application ->bootstrap(); self:: $_application = $application ; } } |
TokenServiceTest.php service类例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
namespace Service; use test\TestCase; include TEST_DIR . '/TestCase.php' ; include APP_PATH . '/application/library/Service/BaseService.php' ; include APP_PATH . '/application/library/Service/TokenService.php' ; class TokenServiceTest extends TestCase { /** * @var TokenService */ protected static $tokenService ; public function setUp() { self:: $tokenService = TokenService::getInstance(); parent::setUp(); } public function testCreateToken() { $token = self:: $tokenService ->createToken( '22' ); $this ->assertInternalType( 'array' , $token ); $this ->assertInternalType( 'string' , $token [ 'token' ]); } } |
BaseControllerTest.php controller类例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
namespace test\controller; include TEST_DIR . '/TestCase.php' ; use test\TestCase; class BaseControllerTest extends TestCase { public function testGetConfigAction() { $request = new Simple( 'CLI' , '' , 'Index' , 'getConfig' ); $response = self:: $_application ->getDispatcher()->returnResponse(true)->dispatch( $request ); $contents = $response ->getBody(); $data = json_decode( $contents , true); $this ->assertInternalType( 'array' , $data ); } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/xiaoxiong_web/article/details/78900463