
xUnit Test Patterns: Refactoring Test Code (Hardcover)
內容描述
Description
Automated testing is a cornerstone of agile development. Testing can
deliver new functionality more aggressively, accelerate user feedback, and
improve quality. However, for many developers, creating effective automated
tests is a unique and unfamiliar challenge.
XUnit Test Patterns is the definitive guide to writing
automated tests for today's popular XUnit test automation frameworks. Renowned
testing expert Gerard Meszaros introduces more than 120 proven patterns for
making tests easier to write, understand, and maintain. He then shows you how
to make them more robust and repeatable, and far more cost-effective.
Drawing on his extensive experience, Meszaros illuminates the evolving role
of software testing and clearly defines unit, component and system testing. He
then links these concepts to the "programmer" and "customer" tests required by
agile methods. You'll learn how to optimize your test automation strategy,
organize it, and implement it with XUnit. You'll also learn three categories
of recurring problems, and how to overcome each of these "test smells."
A comprehensive reference to more than 120 testing patterns is included,
and Meszaros illuminates the principles underlying each pattern, offering
step-by-step usage instructions. You'll find high-level strategy patterns,
design-level patterns for testing specific functionality, and coding idioms
for optimizing specific tests. In addition, an extensive library of relevant
code samples is available online. Topics covered include:
Writing better tests--and writing them faster
Software testing phases: fixture setup, exercise SUT, result
verification, and fixture teardown
Testing business logic, databases, user interfaces, and
machine-to-machine interfaces
Isolating software to test it independently from its environment
Refactoring tests for greater simplicity
Working effectively with XUnit, NUnit, JUnit, and other implementations
Designing software for greater testability
This book will benefit developers, managers, and testers working with any
agile or conventional development process, any testing framework, and any
testing strategy--from "tests as specification" to "tests as safety net."