TAP::Parser::Result::Test - 測試結果代碼。
版本 3.44
這是 TAP::Parser::Result 的子類別。如果遇到測試行,將會傳回這個類別的代碼。
1..1
ok 1 - woo hooo!
這個類別是 TAP::Parser 系統的執行核心。大多數 TAP 行都會是測試行,如果 $result->is_test
,那麼你可以使用許多方法。
ok
my $ok = $result->ok;
傳回 ok
或 not ok
狀態的文字。
編號
my $test_number = $result->number;
傳回測試的編號,即使原始 TAP 輸出未提供該編號。
說明
my $description = $result->description;
傳回測試的說明(如果有)。這是測試編號後但指令前的部分。
指令
my $directive = $result->directive;
如果測試行有任何指令,則傳回 TODO
或 SKIP
。
說明
my $explanation = $result->explanation;
如果測試有任何 TODO
或 SKIP
指令,此方法將傳回隨附的說明(如果有)。
not ok 17 - 'Pigs can fly' # TODO not enough acid
對於上述行,說明是酸度不足。
is_ok
if ( $result->is_ok ) { ... }
傳回布林值,表示測試是否通過。請記住,對於 TODO 測試,測試總是通過。
如果測試是未計畫的,此方法將永遠傳回 false。請參閱 is_unplanned
。
is_actual_ok
if ( $result->is_actual_ok ) { ... }
傳回布林值,表示測試是否通過,而不論其 TODO 狀態為何。
actual_passed
已棄用。請改用 is_actual_ok
。
todo_passed
if ( $test->todo_passed ) {
# test unexpectedly succeeded
}
如果這是 TODO 測試和 'ok' 行,此方法傳回 true。否則,它將永遠傳回 false(不論非 todo 測試的通過狀態為何)。
這用於追蹤意外成功的測試。
todo_failed
# deprecated in favor of 'todo_passed'. This method was horribly misnamed.
這是一個命名錯誤的方法。它表示意外成功的 TODO 測試。現在將發出警告並呼叫 todo_passed
。
has_skip
if ( $result->has_skip ) { ... }
傳回布林值,表示此測試是否有 SKIP 指令。
has_todo
if ( $result->has_todo ) { ... }
傳回布林值,表示此測試是否有 TODO 指令。
as_string
print $result->as_string;
此方法將測試列印為字串。它可能類似於原始測試行,但未必相同。指令會大寫,一些空白可能會被修剪,如果原始行中沒有測試編號,則會加入測試編號。如果您需要測試行的原始文字,請使用 raw
方法。
is_unplanned
if ( $test->is_unplanned ) { ... }
$test->is_unplanned(1);
如果測試號碼大於已規劃測試的數量,此方法會傳回 true。無論測試是否 has_todo
,未規劃的測試永遠會對 is_ok
傳回 false。
請注意,如果測試有尾隨計畫,則無法設定未規劃測試的此屬性,因為我們在到達計畫之前不知道它是未規劃的
print <<'END';
ok 1
ok 2
1..1
END