项目准备启用Qunit, 先来尝试一下。 不说废话,上代码:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>QUint</title>
<link rel="stylesheet" href="qunit.css">
<script src="qunit.js"></script>
<script type="text/javascript"> myfunc = function(a){
return a^3;
}
function Foo( x, y, z ) {
this.x = x;
this.y = y;
this.z = z;
} test("Simple", function(assert) {
assert.ok(function(){return "world1"}, "world");
assert.notOk(1 === "1", "=== failed!");
ok(1 == "1", "== pass!");
equal('1',1,"1==1 equal");
assert.ok(myfunc(1) == 2,"calc pass"+(1^3));
}); var a = new Foo(1,2,3);
var b = a;
test("object",function(){
propEqual(a,b,"a is same as b");
strictEqual(a,b,"a is strict same as b");
a.x =8;
propEqual(a,b,"a is same as b");
a = {x:8,y:2,z:3};
propEqual(a,b,"a is same as b");
notStrictEqual(a,b,"a is not strict same as b");
a = new Foo(1,2,3);
notPropEqual(a,b,"a is not same as b");
b = new Foo(1,2,3);
notEqual(a,b,"a is not same as b");
notStrictEqual(a,b,"a is not strict same as b for different object");
deepEqual(a,b,"a b DeepEqual");
}); test( "async", function( assert ) {
assert.expect( 2 ); var done1 = assert.async();
var done2 = assert.async();
setTimeout(function() {
assert.ok( true, "test resumed from async operation 1" );
done1();
}, 500 );
setTimeout(function() {
assert.ok( true, "test resumed from async operation 2" );
done2();
}, 150);
}); QUnit.test( "expect test", function( assert ) {
assert.expect( 1 ); function calc( x, operation ) {
return operation( x );
} var result = calc( 2, function( x ) {
assert.ok( true, "calc() calls operation function" );
return x * x;
}); assert.equal( result, 4, "2 squared equals 4" );
});
</script>
</head> <body>
<h1 id="qunit-header">QUnit Report</h1>
<h2 id="qunit-banner"></h2>
<ol id="qunit-tests"></ol>
</body>
</html>

看报告:

看起来不错, 有equal, deepEqual, strictEqual要区别下。

在看看dom的操作:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>demo1</title>
<link rel="stylesheet" href="../../qunit.css">
<script src="../../qunit.js"></script>
<script type="text/javascript">
function submit (argument) {
// body...
var Str = document.getElementById("userName").value + document.getElementById("password").value;
document.getElementById("result").innerText = Str;
}
function reset (argument) {
// body...
document.getElementById("userName").value = document.getElementById("password").value = "";
document.getElementById("result").innerText = "";
} test("Simple", function(assert) {
document.getElementById("userName").value = "username";
document.getElementById("password").value = "password";
submit();
assert.equal(document.getElementById("result").innerText,"username" + "password","test input");
reset();
assert.equal(document.getElementById("password").value,document.getElementById("userName").value,"reset");
});
</script>
</head>
<body>
<!-- <form > -->
<div>
<div>
<label for="userName">UserName:</label>
<input type="text" id="userName" name="userName">
</div>
<div>
<label for="password">password:</label>
<input type="text" id="password" name="password">
</div>
<div>
<input type="button" value="submit" onclick="submit()">
</div>
</div>
<!-- </form> -->
<div id="result"> </div> <div id="test">
<h1 id="qunit-header">QUnit Report</h1>
<h2 id="qunit-banner"></h2>
<ol id="qunit-tests"></ol>
</div>
</body>
</html>

图:

运行还可以啊。

问题来了: 怎么把测试报告也页面分离,这样太丑了? 继续研究。。。

QUnit 实践一的更多相关文章

  1. 使用Node.js完成的第一个项目的实践总结

    http://blog.csdn.net/yanghua_kobe/article/details/17199417 项目简介 这是一个资产管理项目,主要的目的就是实现对资产的无纸化管理.通过为每个资 ...

  2. 测试工具使用-Qunit单元测试使用过程

    031302620 应课程要求写一篇单元测试工具的博客,但是暂时没用到java,所以不想使用junit(对各种类都不熟悉的也不好谈什么测试),原计划是要用phpunit,但是安装经历了三个小时,查阅各 ...

  3. [转]使用Node.js完成的第一个项目的实践总结

    本文转自:http://blog.csdn.net/yanghua_kobe/article/details/17199417 https://github.com/yanghua/FixedAsse ...

  4. 互联网研发效能之去哪儿网(Qunar)核心领域DevOps落地实践

    本文从业务目标角度出发,确定了开源+自建模式搭建 Qunar 研发工具链整体生态:通过 APPCODE 打通工具链,流程规范化自动化:多种手段+发布门禁助力质量提升:建立应用画像确定运维最小单元,可发 ...

  5. webp图片实践之路

    最近,我们在项目中实践了webp图片,并且抽离出了工具模块,整合到了项目的基础模板中.传闻IOS10也将要支持webp,那么使用webp带来的性能提升将更加明显.估计在不久的将来,webp会成为标配. ...

  6. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  7. TDD在Unity3D游戏项目开发中的实践

    0x00 前言 关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不到特别多关于TDD的声音.那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使 ...

  8. Logstash实践: 分布式系统的日志监控

    文/赵杰 2015.11.04 1. 前言 服务端日志你有多重视? 我们没有日志 有日志,但基本不去控制需要输出的内容 经常微调日志,只输出我们想看和有用的 经常监控日志,一方面帮助日志微调,一方面及 ...

  9. 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

    一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从 ...

随机推荐

  1. android中的style部分属性值介绍 --zz

    Android平台定义的主题样式: android:theme="@android:style/Theme.Dialog"   将一个Activity显示为对话框模式 •andro ...

  2. CSS3 grayscale滤镜+SVG使图片变黑白实例页面

    CSS代码: .gray { -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale( ...

  3. python之旅:面向对象的程序设计

    一 面向对象的程序设计的由来 面向对象设计的由来见概述:http://www.cnblogs.com/moyand/p/8784210.html 二 什么是面向对象的程序设计及为什么要有它 面向过程的 ...

  4. Web前端之Javascript详解20180330

    一.javascript概述 javascript是基于对象和事件的脚本语言. 特点: 1.安全性(不允许直接访问本地硬盘(因为是被远程的浏览器解释)),它可以做的就是信息的动态交互 2.跨平台性(只 ...

  5. for,while,do while

    long i; ;i<;i++) printf( printf("%ld\n",i); ) printf("b\n"); i=; do { printf( ...

  6. R语言的ARIMA模型预测

    R通过RODBC连接数据库 stats包中的st函数建立时间序列 funitRoot包中的unitrootTest函数检验单位根 forecast包中的函数进行预测 差分用timeSeries包中di ...

  7. (二)C语言文本流和二进制流的区别

    转至:http://www.cnblogs.com/xiangzi888/archive/2011/11/10/2244336.html 一.首先回答,什么是文件,流 一个文件通常就是磁盘上的一段命名 ...

  8. 逻辑回归--美国挑战者号飞船事故_同盾分数与多头借贷Python建模实战

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  9. day4 数组学习

    java提供的数组排序操作:java.util.Arrays.sort(数组名): java提供的数组复制:system.arraycopy(源数组名称,源数组开始点下标,目标数组名称,目标数组开始下 ...

  10. bzoj千题计划129:bzoj2007: [Noi2010]海拔

    http://www.lydsy.com/JudgeOnline/problem.php?id=2007 1.所有点的高度一定在0~1之间, 如果有一个点的高度超过了1,那么必定会有人先上坡,再下坡, ...