TDD笔记3 三角测量Triangulation

TDD的第三章主要讲了一个概念Triangulation,用金山词霸查了的意义为三角测量。

 

三角测量的原理颇为简单,基本,非常好理解。如两眼睁开穿针很容易,一只眼睛就非常不容易,如果没试过不妨试一下。打官司的时候往往是公说公有理,婆说婆有理,但只要有一个无利害关系的第三方,就很容量理清是非了。

 

在软件测试领域三角测量也非常有用。如在TDD的第二章有这样一个测试用例。

	public void testEquality()
	{
		assertTrue(new Dollar(5).equals(new Dollar(5)));
	}

 如果只有这么一个用例很难说程序是对的。不对的可能性有很多种,如Dollar使用一个假的equals实现,该函数直接返回true;又有可能Dollar的构造函数根本没有使用参数值而是一个内部常量;还有其它的很多种情况导致程序是错的。但是只要给该测试用例再加另一个方面的内容,结果就不一样了,基本上可以保持程序是对的,我基本上没有找到异常情况,如果你能找到别忘了告诉我。

	public void testEquality()
	{
		assertTrue(new Dollar(5).equals(new Dollar(5)));
		assertFalse(new Dollar(5).equals(new Dollar(6)));
	}

 

第二个例子也是从TDD的第三章摘取的。不对的情况,如amount的缺省值是10;times函数乘以多少是硬编码的;等等。

	public void testMultiplication()
	{
		Dollar five = new Dollar(5);
		Dollar product = five.times(2);
		assertEquals(10, product.amount);
	}

 但是再加上另一方面的,请在找找还有什么异常情况,恐怕要少很多。

	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);
	}

 

1+1=?,很难说,就看怎么用了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值