项目准备启用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. Alpha 完结撒花 —— 事后诸葛亮

    写在前面 林燊大哥 一路走来,好不容易,终于完结了. 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决的问题 用户在进店之前无法得知店铺的优劣,通过 ...

  2. Linux进程间通信(消息队列/信号量+共享内存)

    写在前面 不得不说,Deadline果真是第一生产力.不过做出来的东西真的是不堪入目,于是又花了一早上重写代码. 实验内容 进程通信的邮箱方式由操作系统提供形如 send()和 receive()的系 ...

  3. Java虚拟机加载类

    Java虚拟机是如何加载Java类的 Java虚拟机加载Java类总共需要经过3步:加载-----链接-----初始化.Java语言的类型可以分为两大类:基本类型和引用类型.基本类型是有Java虚拟机 ...

  4. Android 程序架构: MVC、MVP、MVVM、Unidirectional、Clean...

    摘选自:GUI 应用程序架构的十年变迁:MVC.MVP.MVVM.Unidirectional.Cleanhttps://zhuanlan.zhihu.com/p/26799645 MV* in An ...

  5. 【Asp.net入门5-03】创建产品清单

  6. 【Asp.net入门3-01】使用jQuery-创建示例项目

    过去,浏览器除了显示HTML外,很少具有其他功能.因此,早期的Web应用程序需要依赖服务 器端代码来响应用户交互并执行数据操作.Web应用程序的交互依赖HTML表单元素和浏览器向服务 器发送数据的功能 ...

  7. python---基础知识回顾(九)图形用户界面-------WxPython

    主要使用wxPython(最成熟的跨平台python GUI工具包) wxPython手册 前戏:基础了解 import wx class MyFrame(wx.Frame): #创建自定义Frame ...

  8. Java RMI 简单实现

    提供远端访问的时候,我们首先需要定义远端能够访问哪些东西,在Java中,定义这类接口需要实现Remote接口 public interface Business extends Remote{ pub ...

  9. Typora 自定义主题 修改左右间距

    打开偏好设置,打开主题文件夹 比如要修改night主题中的间距,编辑night.css文件,修改#write样式即可. 修改其他样式类试.

  10. python学习笔记5--random

    一.random模块 import random,string print(random.randint(1,199))#1-199随机取一个整数 print(string.digits) #所有的数 ...