NO.1 测试总结

2018-02-03  本文已影响15人  Junting

第一周 测试

为什么需要测试

测试的好处是什么

TDD 和 BDD 的差别

TDD ( Test-driven development ) 测试驱动开发

解开TDD的定义,我们会发现它通常分为五个不同的阶段:

测试驱动开发流程
BDD ( Behavior-driven development ) 行为驱动开发

主要是BDD旨在消除TDD可能造成的问题,与TDD相比,BDD是当我们写行为和规范,然后驱动我们的软件开发。行为和规范可能看起来非常类似于测试,但差异是非常微妙和重要的。

测试工具

安装测试相关工具

npm 或则 yarn install 的方式安装依赖或插件,具体就不介绍了

Node.js API 之 assert 断言

对assert 的15个方法的一个整理

(学习笔记)[https://www.jianshu.com/p/1fcf4502c619]

预览完assert API 后,再看should、expect 的断言库基本使用方式差不多,理解起来也会很快

预习习题思考

两极大数相加

javascript 语言对number 类型精确到个位最大整数是9007199254740992, 也就是Math.pow(2, 53);超过此边界后的位数会被丢弃,导致精度丢失.

!(Javascript Number)[http://www.plqblog.com/ueditor/php/upload/image/20160709/1468042984788341.png]
所以在加法运算时,会造成精度丢失,解决方法的思路是以字符串的形式来相加:

// 方法一:
// 根据正常的数据加法运算表达式计算,转换成代码计算
// 将两个数分别转换成字符串,数字的第一位自然是右边第一位了,所以将数组反转一下
// 根据两个数的最大长度,就可以得知需要依次加几次
// 两个数组然后依次相加,(如果你不把数组反转一下,相加的位是不是会发生错位的情况了)
// 对依次相加的数进行依次计算,如果相加大于等于10,说明下一位还要进1(存贮状态);默认进位为0,在计算两个同index 相加 默认加上进位,然后判断是否进位,,个位数压入新的数组
// 最后计算出来后的字符串再反转一下就出来了

function add(string1, string2) {
    function add(string1, string2) {
        // 实现该函数
        // 先判断,如果小于16位,直接相加
        if (string1.length < 16 && string2.length < 16) {
            return ((+string1) + (+string2)).toString()
        }
        // return (Number(string1) + Number(string2)).toString()
        // 大数相加
        let list1 = string1.split('').reverse() // 将字符串拆分成单个元素的数组,把元素颠倒过来
        let list2 = string2.split('').reverse()
        let resultList = [] // 存放相加好的个位数的list
        let carry = 0 // 进位
        const cycleNumbers = Math.max.apply(Math, [string1.length, string2.length]) // 相加的次数
        let i = 0
        while (i <= cycleNumbers) {
            unitTotalList = (Number(list1.shift() || '0') + Number(list2.shift() || '0') + carry).toString().split('') // 个位数相加
            resultList.push(unitTotalList.pop()); // 把结果放进list里
            carry = Number(unitTotalList.pop() || '0') // 进位的数字。默认0
            // console.log('carry:', carry)
            i++
        }
        // console.log("resultList:", resultList);
    return resultList.reverse().join('').replace(/^0/gi, '') // 把list颠倒过来,合并。如果最大的个位数是0,丢弃
}

// 方法二 奇淫技巧
// 思路是一样的,不过这里使用了一些js 语法的特性
function sumStrings(a,b){
    var res='', c=0;
    a = a.split('');
    b = b.split('');
    while (a.length || b.length || c){
        c += ~~a.pop() + ~~b.pop();
        c = c>9;
    }
    return res.replace(/^0+/,'');
 }

工具配置相关记录问题

上一篇下一篇

猜你喜欢

热点阅读