Skip to Content
Perl Testing: A Developer's Notebook
book

Perl Testing: A Developer's Notebook

by Ian Langworth, Chromatic
July 2005
Intermediate to advanced
200 pages
4h 31m
English
O'Reilly Media, Inc.
Content preview from Perl Testing: A Developer's Notebook

Chapter 9. Testing Everything Else

As pleasant as it might be to believe otherwise, there’s a whole world outside of Perl. Fortunately, Perl works well with other programs and other languages, even to the point at which you can use them almost seamlessly from your Perl code.

Good testers don’t shy away from testing external code just because it seems difficult. You can use Perl’s nice testing libraries and the tricks you’ve learned so far even if you have to test code written in other languages or programs you can’t modify. Perl’s that flexible.

This chapter’s labs demonstrate how to test Perl programs that you can’t refactor into modules, how to test standalone programs, and how to test code that isn’t Perl at all.

Writing Testable Programs

Not every useful piece of Perl code fits in its own module. There’s a wealth of worthwhile code in scripts and programs. You know the rule: if it’s worth using, it’s worth testing. How do you test them? Write them to be as testable as possible.

Note

Simple, well-factored code is easier to test in isolation. Improving the design of your code is just one of the benefits of writing testable code.

How do I do that?

Imagine that you have a program that applies filters to files given on the command line, sorting and manipulating them before printing them. Save the following file as filefilter.pl:

 #!perl use strict; use warnings; main( @ARGV ) unless caller(); sub main { die "Usage:\n$0 <command> [file_pattern]\n" unless @_; my $command = shift; my $command_sub ...
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 Hacks

Perl Hacks

Chromatic, Damian Conway, Curtis Ovid Poe, Curtis (Ovid) Poe
Perl in a Nutshell

Perl in a Nutshell

Nathan Patwardhan, Ellen Siever, Stephen Spainhour
Perl Debugged

Perl Debugged

Peter Scott, Ed Wright

Publisher Resources

ISBN: 0596100922Errata Page