VS2010 学习笔记 TDD (3) 从失败到成功(三)

任务 4 – 通过测试驱动,为SimpleStack添加更多功能

目前SimpleStack近乎空架子,只有一个只读的IsEmpty属性。我们开始学习怎么利用TDD添加更多的功能。首先,栈是应该可以推入(Push )一个对象,也可以拉出(Pop )一个对象的。

  • 新增一个测试方法,用于测试SimpleStack类的Push方法,这个方法接收一个整数推入栈中:

[TestMethod]
public void ThenShouldBeAbleToPushAnItemOntoTheStack ()
{
    var theStack = new SimpleStack();
    theStack.Push (1);
}

  • 我们会留意到Push 方法的下面,Smart Tag出现并提示错误。按CTRL+. 可以看到Smart Tag给出生成Push方法的选项,我们也就乐于接受VS的帮助吧
  • 运行一下测试,要确保肯定失败!(每次测试编写后,必须确保运行失败!!)
    • 大家会觉得奇怪么?因为VS帮我们创建的Push方法代码,直接抛出了NotImplementedException 意外,即方法未实现。既然这样我们为什么还要运行测试呢?因为我们要遵循TDD“失败 -成功-重整”的三部曲嘛!它失败了,才是我们想要的结果。
    • 这又是什么道理呢?因为有可能出现测试写好后,它碰巧运行通过,虽然你知道应该失败。对于这些情况,就要检查测试代码,确保测试使用了正确的断言逻辑。
  • 现在我们让测试可以通过。别忘了花最少的功夫!那怎么才能花最少的功夫让测试通过呢?最简单就是直接将Push方法中抛出错误的语句删掉!因为到现在,测试只是检查我们是否能够将某些东西推入到栈中。

internal void Push(int p)
{
}

  • CTRL+, 用Quick Search工具定位回到测试方法(输入TSBA 即可,方便啊!)
  • 重新运行测试,爽,成功了!但大家会说,Push不是这样的,根本就没有讲对象推入到栈中。好吧,我们再下一节继续用测试驱动来完成这个需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值