public void testMultiplication()
{
Dollar five = new Dollar(5);
Dollar product = five.times(2);
assertEquals(10, product.amount);
product = five.times(3);
assertEquals(15, product.amount);
}
前一章的测试代码虽然实现了功能,但是amount变量暴露给了外部。TestCase相当于工作类的一个用户,应该尽量让用户对内部实现不可见,即使是测试用例也如此。如果我去买东西,知道了它的进货价,恐怕它也不可能卖太高的价格。如果我是一个店的员工,知道了东西的进货价,从哪儿进的,利润又高,恐怕我也会去开这么一个店 。
把代码稍微修改一下,就截然不同了。我可不想让别人知道我的隐私。
public void testMultiplication()
{
Dollar five = new Dollar(5);
Dollar product = five.times(2);
assertEquals(new Dollar(10), product);
product = five.times(3);
assertEquals(new Dollar(15), product);
}
上面代码中的product临时变量看起来好像没有什么用,为什么不给它去掉呢!
public void testMultiplication()
{
Dollar five = new Dollar(5);
assertEquals(new Dollar(10), five.times(2));
assertEquals(new Dollar(15), five.times(3));
}
嗯,这回不错了,代码看起来简洁多了。Commit。