摘要:本篇文章主要讲述软件测试技术之创建单元测试—编写测试用例and执行测试用例,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。
本篇文章主要讲述软件测试技术之创建单元测试—编写测试用例and执行测试用例,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。
编写测试用例
编写单元测试一版遵循3A模式:
Arrange(准备)。设置测试场景,准备测试数据
Act(执行)。调用被测试代码
Assert(断言)。验证被测代码的行为是否与预期相同
在jasmine-demo\spec\Basic目录下创建Calc_spec.js,添加如下测试代码:
describe('Calculator',function(){ varcalc; beforeAll(function(){ calc=newCalculator(); }) describe('TestAdd',function(){ it('add1and3shouldequal4',function(){ varresult=calc.add(1,3); expect(result).toBe(4); }) }) }) |
单元测试验证测试结果通常使用断言的形式,也就是将期望的结果与实际的结果相比较,一致说明测试通过,不一致说明测试失败。上面代码中的expect(result).toBe(4);指的是1+3得到的结果是否等于4.
我们能想到所有的测试用例应该至少包含一条断言。
执行测试用例
执行测试用例,我们可以仿照下载的jasmine中包含的例子来写。
复制SpecRunner.html到jasmine-demo中,用编辑器打开,对立面的内容进行修改,修改如下:
<!DOCTYPEhtml> <html> <head> <metacharset=""utf-8""> <title>CalculatorTest</title> <linkrel=""shortcuticon""type=""image/png""href=""node_modules/jasmine-core/images/jasmine_favicon.png""> <linkrel=""stylesheet""href=""node_modules/jasmine-core/lib/jasmine-core/jasmine.css""> <scriptsrc=""node_modules/jasmine-core/lib/jasmine-core/jasmine.js""></script> <scriptsrc=""node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js""></script> <scriptsrc=""node_modules/jasmine-core/lib/jasmine-core/boot.js""></script> <!--includesourcefileshere...--> <scriptsrc=""src/Basic/Calc.js""></script> <!--includespecfileshere...--> <scriptsrc=""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){ returna*b; } |
Calc_spec.js中代码为:
describe('Calculator',function(){ varcalc; beforeAll(function(){ calc=newCalculator(); }) describe('TestAdd',function(){ it('add1and3shouldequal4',function(){ varresult=calc.add(1,3); expect(result).toBe(4); }); it('add1and2shouldnotequal5',function(){ varresult=calc.add(1,2); expect(result).not.toBe(5); }) }) describe('Testmultiply',function(){ it('multipled2and5shouldequal10',function(){ varresult=calc.multiply(2,5); expect(result).toBe(10); }); it('multipled2and10shouldnotequal15',function(){ varresult=calc.multiply(2,10); expect(result).not.toBe(15); }) }) }) |
本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号