TDD和伪代码编程那个更好些?

前端之家收集整理的这篇文章主要介绍了TDD和伪代码编程那个更好些?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近一直在使用TDD方式开发,回头看看自己的编程速度下降了不少,仔细想了想原因,可能是一下几个方面引起的:

1、TDD感觉上是为填充通过测试而些代码,缺少了以前伪代码方式的连贯性,写代码都是些片段,比较难像以前的一气呵成。

2、对需求的了解方式是否不同?以前的写法是以功能为出发点,感觉更自然些,而TDD是以结果为导向,测试案例写法的基本思路:输入->执行->结果预期

3、【输入】简单的两个字,在写的过程中是最为复杂的地方,常常要准备大量的数据,而且会把测试案例搞的可读性下降,

4、【结果预期】通常比较简单,但其实是最为关键的部分,也是它导致了【输入】的复杂性,其实有时想知道验证的是啥,也是比较困难的。

TDD的好处也一大堆,就不说了,只是过程还是感到有些不能得心应手的地方。

分析上面的一些原因,给自己制定一些改进尝试的方式:

1、连贯性的思维转移 -> 测试案例的连贯性,将写伪代码方式的连贯引入到测试案例的编写中(指的是功能描述的,指下面的第2点)。

2、需求中功能的切分方式,明确-该功能完成后-可得到的结果(可验证的),第一个案例先写正常流程的,后面跟边界条件、结果

例如在自己的notetip中这样写需求:

后面将这些功能对应到测试代码中(javascript语言)

this.testClickStrengthenBtn_NoEnoughItem = function() {

this.setPreCondition({itemnum:0,money:1000000,level:0});

this.items.strenbtn.click();

assert(gamesys.getPopSysMsg() == g_strs.hero.errtip.noenoughitem);

}

this.testClickStrengthenBtn_NoEnoughMoney = function() {

this.setPreCondition({itemnum:1000000,money:0,level:0});

this.items.strenbtn.click();

assert(gamesys.getPopSysMsg() == g_strs.hero.errtip.noenoughmoney);

}

3、编写一些自己的测试语句,包括初始条件的等,第2点中this.setPreCondition这个就是最近使用,效果比较好,由于javascript中@R_301_472@关键字参数(python支持),可以使用字典参数,达到同样强的参数可读性。后续多完善一些固定设施的工具函数,减少输入的壁垒。

写到这里,感觉自己的思维有些清晰了,关键是第2点重点尝试下,看有否改善。

继续写代码去了。。。

猜你在找的设计模式相关文章