內容

名稱

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);

傳回與傳入測試代碼相符的適當類別的執行個體。

布林方法

以下方法皆傳回布林值,且會在適當的子類別中覆寫。

raw

print $result->raw;

傳回已解析的原始文字行。

type

my $type = $result->type;

傳回令牌的「類型」,例如 commenttest

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 測試。

SUBCLASSING

請參閱 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::ObjectTAP::ParserTAP::Parser::ResultFactoryTAP::Parser::Result::BailoutTAP::Parser::Result::CommentTAP::Parser::Result::PlanTAP::Parser::Result::PragmaTAP::Parser::Result::TestTAP::Parser::Result::UnknownTAP::Parser::Result::VersionTAP::Parser::Result::YAML