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.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Perl Pocket Reference, 5th Edition

Perl Pocket Reference, 5th Edition

Johan Vromans
Beginning Perl

Beginning Perl

Curtis Ovid Poe
Advanced Perl Programming

Advanced Perl Programming

Sriram Srinivasan
Perl & LWP

Perl & LWP

Sean M. Burke

Publisher Resources

ISBN: 9781449343781Errata Page