TAP::Parser::Result - TAP::Parser 輸出的物件之基礎類別
版本 3.44
# abstract class - not meant to be used directly
# see TAP::Parser::ResultFactory for preferred usage
# directly:
use TAP::Parser::Result;
my $token = {...};
my $result = TAP::Parser::Result->new( $token );
這是 TAP::Parser 使用的一個簡單基礎類別,用於儲存代表 TAP 中當前測試輸出資料片段(通常為單行)的物件。除非您要建立子類別,否則可能不需要直接使用此模組。
new
# see TAP::Parser::ResultFactory for preferred usage
# to use directly:
my $result = TAP::Parser::Result->new($token);
傳回與傳入測試代碼相符的適當類別的執行個體。
以下方法皆傳回布林值,且會在適當的子類別中覆寫。
is_plan
指示這是不是測試計畫行。
1..3
is_pragma
指示這是不是 pragma 行。
pragma +strict
is_test
指示這是不是測試行。
ok 1 Is OK!
is_comment
指示這是不是註解。
# this is a comment
is_bailout
指示這是不是退出行。
Bail out! We're out of dilithium crystals.
is_version
指示這是不是 TAP 版本行。
TAP version 4
is_unknown
指示目前的這行是否可以解析。
... this line is junk ...
is_yaml
指示這是不是 YAML 塊。
raw
print $result->raw;
傳回已解析的原始文字行。
type
my $type = $result->type;
傳回令牌的「類型」,例如 comment
或 test
。
as_string
print $result->as_string;
列印令牌的字串表示。不過,這可能不是確切的輸出。如果沒有測試號碼,測試會新增測試號碼,TODO 和 SKIP 指令會大寫,而且一般來說,會將所有東西清理乾淨。如果你需要令牌的原始文字,請參閱 raw
方法。
is_ok
if ( $result->is_ok ) { ... }
報告指定的結果是否已通過。任何不是測試結果的東西都會傳回 true。這只是一個方便的捷徑。
passed
已棄用。請改用 is_ok
。
has_directive
if ( $result->has_directive ) {
...
}
指示指定的結果是否有 TODO 或 SKIP 指令。
has_todo
if ( $result->has_todo ) {
...
}
指示指定的結果是否有 TODO 指令。
has_skip
if ( $result->has_skip ) {
...
}
指示指定的結果是否有 SKIP 指令。
set_directive
設定與這個令牌關聯的指令。內部用來偽造 TODO 測試。
請參閱 TAP::Parser 中的「SUBCLASSING」 以取得子類別概觀。
請記住:如果你要讓你的子類別自動由解析器使用,你必須使用 TAP::Parser::ResultFactory 中的「register_type」 註冊它。
如果你要建立一個全新的結果類型,你可能也需要建立 TAP::Parser::Grammar 的子類別,否則它永遠不會被使用。
package MyResult;
use strict;
use base 'TAP::Parser::Result';
# register with the factory:
TAP::Parser::ResultFactory->register_type( 'my_type' => __PACKAGE__ );
sub as_string { 'My results all look the same' }
TAP::Object、TAP::Parser、TAP::Parser::ResultFactory、TAP::Parser::Result::Bailout、TAP::Parser::Result::Comment、TAP::Parser::Result::Plan、TAP::Parser::Result::Pragma、TAP::Parser::Result::Test、TAP::Parser::Result::Unknown、TAP::Parser::Result::Version、TAP::Parser::Result::YAML,