在测试驱动开发的软件实践中,单元测试可以取代正式的设计。每一个单元测试案例均可以视为一项类、方法和待观察行为等设计元素。下面的Java例可以帮助说明这一点。
这是一个证明一批实现设计元素的测试类。首先,要求有一个名为Adder的接口,和一个不带参数的构造方法名为AdderImpl的实现类。然后,它断言Adder接口包含有一个两个整数参数返回值为整型的add方法。它也通过小范围的值检验说明方法的行为。
public class TestAdder { public void testSum() { Adder adder = new AdderImpl(); assert(adder.add(1, 1) == 2); assert(adder.add(1, 2) == 3); assert(adder.add(2, 2) == 4); assert(adder.add(0, 0) == 0); assert(adder.add(-1, -2) == -3); assert(adder.add(-1, 1) == 0); assert(adder.add(1234, 988) == 2222); } }
这个案例中,单元测试在程序之前写成,用作指明待设计的对象形态和行为的文档,没有任何实现细节,留作程序员练习。以下可能是最简单的工作实践,这个最容易的解决方案可以通过上述测试:
interface Adder { int add(int a, int b); } class AdderImpl implements Adder { int add(int a, int b) { return a + b; } }
浙公网安备 33010602011771号