W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
開始寫新的測試用例類時,可能想從寫下空測試方法開始,比如:
public function testSomething()
{
}
以此來跟蹤需要編寫的測試??諟y試的問題是 PHPUnit 框架會將它們解讀為成功。這種錯誤解讀導致錯誤報告變得毫無用處——無法分辨出測試是真的成功了還是根本就未編寫實現。在未實現的測試中調用 $this->fail()
同樣沒啥幫助,因為測試將被解讀為失敗。這和將未實現的測試解讀為成功是一樣的錯誤。
假如把成功的測試視為綠燈、測試失敗視為紅燈,那么還額外需要黃燈來將測試標記為未完成或尚未實現。PHPUnit_Framework_IncompleteTest
是一個標記接口,用于將測試方法拋出的異常標記為測試未完成或目前尚未實現而導致的結果。PHPUnit_Framework_IncompleteTestError
是這個界面的標準實現。
Example?7.1, “將測試標記為未完成”展示了一個測試用例類 SampleTest
,它有一個測試方法 testSomething()
。通過在測試方法中調用便捷方法 markTestIncomplete()
(會自動拋出一個 PHPUnit_Framework_IncompleteTestError
異常)將這個測試標記為未完成。
Example?7.1.?將測試標記為未完成
<?php
class SampleTest extends PHPUnit_Framework_TestCase
{
public function testSomething()
{
// 可選:如果愿意,在這里隨便測試點什么。
$this->assertTrue(TRUE, '這應該已經是能正常工作的。');
// 在這里停止,并將此測試標記為未完成。
$this->markTestIncomplete(
'此測試目前尚未實現。'
);
}
}
?>
在 PHPUnit 命令行測試執(zhí)行器的輸出中,未完成的測試記為 I
,如下例所示:
phpunit --verbose SampleTest
PHPUnit 5.0.0 by Sebastian Bergmann and contributors.
I
Time: 0 seconds, Memory: 3.95Mb
There was 1 incomplete test:
1) SampleTest::testSomething
This test has not been implemented yet.
/home/sb/SampleTest.php:12
OK, but incomplete or skipped tests!
Tests: 1, Assertions: 1, Incomplete: 1.
Table?7.1, “用于未完成的測試的 API”列舉了用于將測試標記為未完成的 API。
Table?7.1.?用于未完成的測試的 API
方法 | 含義 |
---|---|
void markTestIncomplete() |
將當前測試標記為未完成。 |
void markTestIncomplete(string $message) | 將當前測試標記為未完成,并用 $message 作為說明信息。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: