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 5. Testing Untestable Code

One of the precepts of good unit testing is to test individual pieces of code in isolation. Besides helping to ensure that your code works, this testing improves your design by decoupling unrelated modules and enforcing communication among well-defined and, hopefully, well-tested interfaces. It also makes debugging failed tests easier by reducing the number of failure points.

Testing in isolation is difficult, though. Most applications have some degree of interdependence between components, being the sum of individual pieces that don’t always make sense when isolated from the whole. An important pattern of behavior in testing is mocking : replacing untestable or hard-to-test code with code that looks like the real thing but makes it easier to test. Perl’s easygoing nature allows you to poke around in other people’s code in the middle of a program without too much trouble.

This chapter’s labs demonstrate how to change code—even if it doesn’t belong to you or if it merely touches what you really want to test—in the middle of your tests. Though fiddling with symbol tables and replacing variables and subroutines is very powerful, it is also dangerous. It’s too useful a tool not to consider, though. Here’s when, why, and how to do it safely.

Overriding Built-ins

No matter how nice it might be to believe otherwise, not all of the world is under your control. This is particularly true when dealing with Perl’s built-in operators and functions, which can wreak ...

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