创建单元测试-编写测试用例 and执行测试用例

编写测试用例
编写单元测试一版遵循3A模式:

  1. Arrange(准备)。设置测试场景,准备测试数据
  2. Act(执行)。调用被测试代码
  3. Assert(断言)。验证被测代码的行为是否与预期相同
    在jasmine-demo\spec\Basic目录下创建Calc_spec.js,添加如下测试代码:
describe('Calculator',function(){
    var calc;
    beforeAll(function(){
        calc = new Calculator();
    })
    describe('Test Add',function(){
        it('add 1 and 3 should equal 4 ',function(){
            var result = calc.add(1,3);
            expect(result).toBe(4);
            })
    })
})

单元测试验证测试结果通常使用断言的形式,也就是将期望的结果与实际的结果相比较,一致说明测试通过,不一致说明测试失败。上面代码中的expect(result).toBe(4);指的是1+3得到的结果是否等于4.
我们能想到所有的测试用例应该至少包含一条断言。

执行测试用例
执行测试用例,我们可以仿照下载的jasmine中包含的例子来写。
复制SpecRunner.html到jasmine-demo中,用编辑器打开,对立面的内容进行修改,修改如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Calculator Test</title>

  <link rel="shortcut icon" type="image/png" href="node_modules/jasmine-core/images/jasmine_favicon.png">
  <link rel="stylesheet" href="node_modules/jasmine-core/lib/jasmine-core/jasmine.css">

  <script src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
  <script src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
  <script src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>

  <!-- include source files here... -->
  <script src="src/Basic/Calc.js"></script>


  <!-- include spec files here... -->
  <script src="spec/Basic/Calc_spec.js"></script>

</head>

<body>
</body>
</html>

主要修改的有:
1.文档标题
2.文件路径,jasmine例子中的文件都包含在我们下载的jasmine-core的文件目录下,找到文件对应的目录改写即可。
3.source文件名与路径
4.测试用例文件名和路径

运行结果
这里写图片描述

一个测试用例通过。
上面的例子是书中现成的例子,现在来举一反三。
测试用例:1+2 !=5 ;
再源代码中加个乘法;
测试用例:2 * 5= 10; 2 * 10!=15
calc.js中添加代码:

Calculator.prototype.multiply = function (a,b){
    return a*b;
}

Calc_spec.js中代码为:

describe('Calculator',function(){
    var calc;
    beforeAll(function(){
        calc = new Calculator();
    })
    describe('Test Add',function(){
        it('add 1 and 3 should equal 4 ',function(){
            var result = calc.add(1,3);
            expect(result).toBe(4);
        });
        it('add 1 and 2 should not equal 5 ',function(){
            var result = calc.add(1,2);
            expect(result).not.toBe(5);
        })

    })
    describe('Test multiply',function(){
        it('multipled 2 and 5 should equal 10 ',function(){
            var result = calc.multiply(2,5);
            expect(result).toBe(10);
        });
        it('multipled 2 and 10 should not equal 15 ',function(){
            var result = calc.multiply(2,10);
            expect(result).not.toBe(15);
        })

    })
})

结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值