phpunit單元測試
1、ubuntu12.04安裝
1
2
3
|
wget https: //phar .phpunit.de /phpunit .phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit
|
2、測試案例phpunit1.php(測試的依賴關係)
展示如何用@depends標註來表達測試方法之間的依賴關係
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
|
<?php class StackTest extends PHPUnit_Framework_TestCase
{ public function testEmpty()
{ $stack = array ();
$this ->assertEmpty( $stack );
return $stack ;
} /** * @depends testEmpty */ public function testPush( array $stack )
{ array_push ( $stack , `foo` );
$this ->assertEquals( `foo` , $stack [ count ( $stack )-1]);
$this ->assertNotEmpty( $stack );
return $stack ;
} /** * @depends testPush */ public function testPop( array $stack )
{ $this ->assertEquals( `foo` , array_pop ( $stack ));
$this ->assertEmpty( $stack );
} } |
3、測試結果
1
2
3
4
5
|
phpunit phpunit1.php PHPUnit 3.7.27 by Sebastian Bergmann. ... Time: 4 ms, Memory: 4.25Mb OK (3 tests, 5 assertions) |
4、為了快速定位缺陷,我們希望把注意力集中於相關的失敗測試上。這就是為什麼當某個測試所依賴的測試失敗時,PHPUnit會跳過這個測試。通過利用測試之間的依賴關係,缺陷定位得到了改進。
如下案例phpunit2.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php class DependencyFailureTest extends PHPUnit_Framework_TestCase
{ public function testOne()
{ $this ->assertTrue(FALSE);
} /** * @depends testOne */ public function testTwo()
{ } } ?> |
5、執行結果
1
2
3
4
5
6
7
8
9
10
|
phpunit phpunit2.php PHPUnit 3.7.27 by Sebastian Bergmann. FS Time: 2 ms, Memory: 4.00Mb There was 1 failure: 1) DependencyFailureTest::testOne Failed asserting that false is true .
/home/wwwroot/local .guazi.com /webroot/phpunit2 .php:6
FAILURES! Tests: 1, Assertions: 1, Failures: 1, Skipped: 1. |
6、測試可以使用多於一個@depends標註。PHPUnit不會更改測試的執行順序,因此你需要自行保證某個測試所依賴的所有測試均出現於這個測試之前。
擁有多個@depends標註的測試,其第一個引數是第一個生產者提供的基境,第二個引數是第二個生產者提供的基境,以此類推
案例phpunit3.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
|
<?php class MultipleDependenciesTest extends PHPUnit_Framework_TestCase
{ public function testProducerFirst()
{ $this ->assertTrue(true);
return `first` ;
} public function testProducerSecond()
{ $this ->assertTrue(true);
return `second` ;
} /** * @depends testProducerFirst * @depends testProducerSecond */ public function testConsumer()
{ $this ->assertEquals(
array ( `first` , `second` ),
func_get_args() ); } } ?> |
7、執行結果
1
2
3
4
5
|
phpunit phpunit3.php PHPUnit 3.7.27 by Sebastian Bergmann. ... Time: 4 ms, Memory: 4.25Mb OK (3 tests, 3 assertions)
|
本文轉自shayang8851CTO部落格,原文連結:http://blog.51cto.com/janephp/1298842,如需轉載請自行聯絡原作者
相關文章
- PHP單元測試框架PHPUnit的使用PHP框架
- 測試 之Java單元測試、Android單元測試JavaAndroid
- 單元測試:單元測試中的mockMock
- Laravel 測試: PHPUnit 入門教程LaravelPHP
- 單元測試,只是測試嗎?
- 單元測試-【轉】論單元測試的重要性
- golang單元測試Golang
- 單元測試真
- iOS 單元測試iOS
- python 單元測試Python
- 前端單元測試前端
- Flutter 單元測試Flutter
- 單元測試 Convey
- 單元測試工具
- 聊聊單元測試
- 十五、單元測試
- Go單元測試Go
- SpringBoot單元測試Spring Boot
- 前端測試:Part II (單元測試)前端
- Junit單元測試—MavenMaven
- 單元測試框架 mockito框架Mockito
- 單元測試與MockitoMockito
- Source Generator 單元測試
- 單元測試?即刻搞定!
- 聊聊前端單元測試前端
- 單元測試基礎
- JavaScript單元測試框架JavaScript框架
- 單元測試 -- mocha + chaiAI
- React元件單元測試React元件
- Spring Boot 單元測試Spring Boot
- Vue單元測試探索Vue
- Google 單元測試框架Go框架
- 測試氣味-整潔單元測試
- Go 單元測試之mock介面測試GoMock
- 單元測試 - 測試場景記錄
- 單元測試-一份如何寫好單元測試的參考
- 測試開發之單元測試-禪道結合ZTF驅動單元測試執行
- 測試夜點心:單元測試測什麼
- Flutter 學習之路 - 測試(單元測試,Widget 測試,整合測試)Flutter