在测试驱动开发的软件实践中,单元测试可以取代正式的设计。每一个单元测试案例均可以视为一项类、方法和待观察行为等设计元素。下面的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;
    }
}



posted on 2014-04-16 16:55  随我畅翔  阅读(164)  评论(0)    收藏  举报