日期:2014-05-16 浏览次数:20414 次
javascript向来是最让人头痛的。现在敏捷开发成了一种趋势,当然javascript也要有单元测试的东东。
现在网上有很多JS单元测试的框架,比如Qunit以及Junit等。
随着nodeJS的发展,javascript也开始有自己的后端,更加需要单元测试保证代码的质量。
?
因为本人原生是java程序员,所以对Junit的方式比较熟悉,但市面上的写法都是JS的写法,所以有些不习惯。因此本人写了一个较为简单的unit书写工具(切忌不是框架)。
?
本代码用git版本管理,挂在git-hub上,https://LeiChen@github.com/LeiChen/JunitS.git
页面 :?https://github.com/LeiChen/JunitS
?
特点:
?
浏览器based的写法:
<script type="text/javascript">
var testcase = unit.TestSuite.create();
testcase.testInt = function(){
this.assertEqual("fail to test 1 == 1 ",1,1);
};
testcase.testTrueFail= function(){
this.assertTrue(false);
};
new unit.TestSuite().add(testcase).run();
</script>
?
nodeJS的写法:
var unit = require(__dirname + '/../main/unitjs.js');
//define render for jsnode
var render = function (errors,tol,sucs) {
if(0 == errors.length) {
console.log("all success");
return ;
}
var content = "";
for(var i in errors) {
content += errors[i].method+"|";
}
console.log("test fail method :" + content);
};
unit.TestSuite.init(render);
var simpleTestCase = unit.TestSuite.create();
//define test method
simpleTestCase.test_int = function() {
assertEqual("1 equals 1 fail)", 2, 1);
assertEqual(2,1);
};
new unit.TestSuite().add(simpleTestCase).run();
?
自定义渲染结果:
<html>
<head>
<title>This is an example for testsuite render</title>
</head>
<body></body>
<script type="text/javascript" src="../src/main/unitjs.js"></script>
<script type="text/javascript">
var render = function(errors,total,success) {
var str = "This is overrided result render:#t#/<font size='4' color='green'>#s#</font>/<font size='4' color='red'>#f#</font>";
document.body.innerHTML = str.replace(/#t#/,total).replace(/#s#/,success).replace(/#f#/,(total-success));
};
unit.TestSuite.init(render);
var testcase = unit.TestSuite.create();
testcase.testInt = function(){
this.assertEqual("fail to test 1 == 1 ",1,1);
};
testcase.testTrueFail= function(){
this.assertTrue(false);
};
new unit.TestSuite().add(testcase).run();
</script>
</html>
?