---
name: "Test::TAP::Model::Subtest"
section: "3pm"
platform: "linux"
package: "libtest-tap-model-perl"
version: "0.09-1"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::TAP::Model::Subtest"
---

# Test::TAP::Model::Subtest(3pm)

An object for querying a test case

## NAME

Test::TAP::Model::Subtest - An object for querying a test case

## SYNOPSIS

```
        my @cases = $f->cases;
        $case[0]->ok; # or whatever
```

## DESCRIPTION

This object allows you to ask questions about a test case in a test file's output.

## METHODS

- new

  This constructor accepts the hash reference to the event logged for this subtest.

  It doesn't bless the hash itself, but rather a reference to it, so that other objects' feet aren't stepped on.

- ok

  - passed

  Whether the test is logically OK - if it's TODO and not OK this returns true.

- actual\_ok

  This is the real value from the output. not OK and todo is false here.

- nok

  - failed

  The opposite of `"ok"`

- actual\_nok

  The opposite of `"actual_ok"`

- skipped

  Whether the test was skipped

- todo

  Whether the test was todo

- normal

  Whether the result is consistent, that is OK xor TODO. An abnormal result should be noted.

- unexpected

  The negation of `"normal"`

- planned

  Whether this test is within the plan declared by the file.

- unplanned

  Maybe it's in love with another fish.

- num

  The number of the test (useful for when the test came from a filtered query).

- line

  The raw line the data was parsed from.

- diag

  Diagnosis immediately following the test line.

- reason

  If there was a reason (for skip or todo), it's here.

- pos

  - test\_file

  - test\_line

  - test\_column

  These methods extract the little `"<pos:file.t at line 5, column 3>"` comments as outputted by pugs' Test.pm.

  Supposedly this is where the test case that fail was written.

- str

  A stringy representation much like Test::Harness prints in it's output:

  ```
          (?:not )?ok $num/$planned
  ```
