Skip to Content
Intermediate Perl, 2nd Edition
book

Intermediate Perl, 2nd Edition

by Randal L. Schwartz, brian d foy, Tom Phoenix
July 2012
Intermediate to advanced
396 pages
9h 16m
English
O'Reilly Media, Inc.
Content preview from Intermediate Perl, 2nd Edition

Chapter 20. Advanced Testing

In this chapter, we offer a taste of some of the more popular test modules, along with some advanced features of Test::More. Unless we say otherwise, these modules are not part of the Perl standard distribution (unlike Test::More) and we’ll need to install them ourselves. You might feel a bit cheated by this chapter since we’re going to say “See the module documentation” quite a bit, but we’re gently nudging you out into the Perl world. For much more detail, you can also check out Perl Testing: A Developer’s Notebook, which covers the subject further.

Skipping Tests

In some cases, we want to skip tests. For instance, some of our features may only work for a particular version of Perl, a particular operating system, or only work when optional modules are available. To skip tests, we do much the same thing we did for the TODO tests, but Test::More does something much different.

We again use a bare block to create a section of code to skip, and we label it with SKIP. While testing, Test::More will not execute these tests, unlike the TODO block where it ran them anyway. At the start of the block, we call the skip function to tell it why we want to skip the tests and how many tests we want to skip.

In this example, we check if the Mac::Speech module is installed before we try to test the say_it_aloud method. If it isn’t, the eval block returns false and we execute the skip function:

SKIP: {
  skip 'Mac::Speech is not available', 1
    unless eval { require Mac::Speech ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Mastering Perl, 2nd Edition

Mastering Perl, 2nd Edition

brian d foy
Perl & LWP

Perl & LWP

Sean M. Burke
Advanced Perl Programming

Advanced Perl Programming

Sriram Srinivasan

Publisher Resources

ISBN: 9781449343781Errata Page