C O N T E N T S
4 Simplifying Contract Testing
by Claude Warren
Contract tests help to prove code correctness. If every object
interface is defined as an interface, and every interface has a
contract test that covers all methods and their expected op-
eration, and all objects have tests that mock the objects they
call as per the interface definition, then running the entire
suite of tests demonstrates that the interconnection between
each object works and is correct.
12 The Relationship Between Testability and
by Michael Feathers
There seems to be an eerily consistent connection between
testability at the unit level and good design. Almost
uniformly, code that is hard to test has design problems.
When you fix the design problems, it becomes easy to test.
15 From the Vault: Unit Testing in C: Tools and
By James W. Grenning
A unit test harness is a software package that allows a pro-
grammer to express how production code should behave.
A unit test harness's job is to provide a common language
More on DrDobbs.com
The Corruption of Agile
What was intended as a set of personal practices has become
a doctrine. And despite the mainstream adoption of Agile, the
loss of its original intent has undermined its effectiveness.
Lambda Expressions in Java 8
The single most important change in Java 8 enables faster,
clearer coding and opens the door to functional programming.
Here's how it works.
LINQ-like List Manipulation in C++
Using the open-source Cpplinq project to get Language-Inte-
grated Query capabilities in C++11
Use Frequent Branches to Simplify Code Reviews
If you end up working this way, you'll be using your version control
not only to track what has been done but also how it was done.
Java SE 8 Beyond Lambdas: The Big Picture
In addition to Lambdas, Java 8 features changes to the way
annotations are handled, array processing, VM size, garbage col-
lection, and so much more.
May 2014 2 www.drdobbs.com