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。