nodejs 环境 , 安装should.js包 (npm install should)

 var should = require('should');

 //正确1, 错误0   100
precentNum2(1,0).should.eql(100);
//正确0, 错误1 0
precentNum2(0,1).should.eql(0);
//正确0, 错误0 --
precentNum2(0,0).should.eql('- -');
//正确1, 错误1 50
precentNum2(1,1).should.eql(50);
//正确1, 错误3 25
precentNum2(1,3).should.eql(25);
//正确1, 错误2 33
precentNum2(1,2).should.eql(33);
//正确1, 错误2 33
precentNum2(1,4).should.eql(33); function precentNum2(num, num2) {
var correctQuestions = parseInt(num);
var wrongQuestions = parseInt(num2); if((correctQuestions + wrongQuestions) === 0) {
return "- -";
} else if(correctQuestions === (correctQuestions + wrongQuestions)) {
return 100;
} else if(correctQuestions === 0 && wrongQuestions !== 0) {
return 0;
} else {
var temp = correctQuestions / (correctQuestions + wrongQuestions);
var tempResult = parseInt(temp.toFixed(2).substr(2,2));
if(tempResult > 0 && tempResult < 101) {
return tempResult;
} else {
return "- -";
}
}
}

mocha + should  (npm install  -g mocha)

 var should = require('should');
describe('Precent', function(){
describe('Precent Test', function(){
it('Test precentNum2', function(){
//正确1, 错误0 100
precentNum2(1,0).should.eql(100);
//正确0, 错误1 0
precentNum2(0,1).should.eql(0);
//正确0, 错误0 --
precentNum2(0,0).should.eql('- -');
//正确1, 错误1 50
precentNum2(1,1).should.eql(50);
//正确1, 错误3 25
precentNum2(1,3).should.eql(25);
//正确1, 错误2 33
precentNum2(1,2).should.eql(33);
//正确1, 错误2 33
precentNum2(1,4).should.eql(20);
})
})
}); function precentNum2(num, num2) {
var correctQuestions = parseInt(num);
var wrongQuestions = parseInt(num2); if((correctQuestions + wrongQuestions) === 0) {
return "- -";
} else if(correctQuestions === (correctQuestions + wrongQuestions)) {
return 100;
} else if(correctQuestions === 0 && wrongQuestions !== 0) {
return 0;
} else {
var temp = correctQuestions / (correctQuestions + wrongQuestions);
var tempResult = parseInt(temp.toFixed(2).substr(2,2));
if(tempResult > 0 && tempResult < 101) {
return tempResult;
} else {
return "- -";
}
}
}

利用should.js进行测试的更多相关文章

  1. 利用Node.js对某智能家居服务器重构

    原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 之前负责过一个智能家居项目的开发,外包重庆一家公司的,我们主要开发服务器监控和集群版管理. 移动端和机顶盒的远程通信是用 ...

  2. 利用exif.js解决ios手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  3. 【转】利用 three.js 开发微信小游戏的尝试

    前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...

  4. 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题

    原文:https://blog.csdn.net/linlzk/article/details/48652635/ html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针 ...

  5. 利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  6. 利用Vue.js实现拼图游戏

    之前写过一篇<基于Vue.js的表格分页组件>的文章,主要介绍了Vue组件的编写方法,有兴趣的可以访问这里进行阅读:http://www.cnblogs.com/luozhihao/p/5 ...

  7. 利用pixi.js制作精灵动画

    CSS Sprites 技术对于广大的前端工程师来说应该是一点也不陌生.国内开发者昵称为CSS精灵,通过一定的技术手段,让精灵动起来,我称其为精灵动画,那么目前有哪些实现方式 呢?下面让我们详细的聊聊 ...

  8. 利用tween.js算法生成缓动效果

    在讲tween类之前,不得不提的是贝塞尔曲线了.首先,贝塞尔曲线是指依据四个位置任意的点坐标绘制出的一条光滑曲线.它在作图工具或动画中中运用得比较多,例如PS中的钢笔工具,firework中的画笔等等 ...

  9. 利用Selenium自动化web测试

    简介: Selenium 是一个没有正式指导手册的开源项目,这让测试人员的问题调查很费时间.本文为基于 Selenium 1.0(发布于 2009 年 6 月)的测试期间的常见问题提供最佳实践. 简介 ...

随机推荐

  1. Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ;

    Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ; 如果你在网上search这个 ...

  2. ZFIR054-现金流量表

    *********************************************************************** * Title : ZFIR102 * * Applic ...

  3. LVM逻辑卷管理

    一.LVM简介 LVM(Logic Volume Manager)逻辑卷管理,简单理解就是将一块或多块硬盘的分区在逻辑上集合,当一块大硬盘来使用. 其特点是: 1.可以实现在线动态扩展,也可以缩减 2 ...

  4. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  5. Squid configuration directives 3.0

    WELCOME TO SQUID 3.0.STABLE25-20100412 ---------------------------- This is the default Squid config ...

  6. boost -- scoped_lock V.S. mutex lock/unlock —— why scoped_lock is recommanded?

    why scoped_lock is recommanded? 其实,这和RAII idiom变流行是一样的原因:因为你可以确保任何情况下离开执行范围都会解锁mutex. 注意,这不仅仅是说你可能忘记 ...

  7. Updatepanel 注册javascript 方法

    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "test", "alert ...

  8. byte与char的区别

     byte 是字节数据类型 ,是有符号型的,占1 个字节:大小范围为-128—127 .char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 ):大小范围 是0—65535 :char ...

  9. SQL2005 遍历表插入

    /* sql2005遍历表(方法1) insert into 数据表(userid,adddate) values((select userid from 用户表),date); */ /*sql20 ...

  10. Swagger+Spring mvc生成Restful接口文档

    简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...