5步学会使用JSUnit

如果你已经了解JUnit或者PyUnit, 那么你应该不会花超过10分钟学会使用JSUnit, JSUnit是用来对Javascript代码做单元测试的测试框架,是JS版本的JUnit。
通过下面5个简单的步骤你可以很快学会使用JSUnit:
(1) 下载JSUnit的压缩包然后解压到本地目录。
http://sourceforge.net/projects/jsunit/files/latest/download
(2) 创建一个简单的Javascript函数计算a和b两个数的和,然后把这段code存到本地文件’myAdd.js’
//myAdd.js
Function add(x,y) {
	Return x+y;
}

(3) 创建一个html文件名字为’testMyAdd.html’。
在这个文件的开头,将JSUnit的源文件和你刚才编写的’myAdd.js’引入进来。在body的部分,写出像下面一样的测试代码。和Junit和PyUnit一样,测试方法一般都以test开头。
<html>
	<head>
		<title>Test my function</title>
		<script type="text/javascript" src="junit/jsUnitCore.js"></script>
		 <script type="text/javascript" src="myAdd.js"></script>
	</head>
	<body>
		<script type="text/javascript">
			function setUp() {
				//alert("test");
			}
			function tearDown() {
				//alert("test");
			}
			function testAdd() {
				assertEquals("", 3, add(2, 1));
			}
			function testAdd2() {
				assertNotEquals("", 0, add(2, 1));
			}
		</script>
	</body>
</html>

(4) 在第一步的解压文件目录中,找到文件“testRunner.html”并且用浏览器打开。
(5) 在打开的页面中,输入你在第三步创建的testAdd.html文件地址然后点击run按钮。当testRunner.html加载页面的时候,它会自动找到你写的test case 方法然后顺序执行。

另外,JSUnit的包中也包含了一些对框架代码(jsUnitCore.js)的测试页面,你可以把它们的URL添加到需要run的url中执行。
比如在jsUnitCore.js中有一个trim方法,是去掉字符首尾的空格:
JsUnit.Util.trim = function(string) {
    if (string == null)
        return null;

    var startingIndex = 0;
    var endingIndex = string.length - 1;

    var singleWhitespaceRegex = /\s/;
    while (string.substring(startingIndex, startingIndex + 1).match(singleWhitespaceRegex))
        startingIndex++;

    while (string.substring(endingIndex, endingIndex + 1).match(singleWhitespaceRegex))
        endingIndex--;

    if (endingIndex < startingIndex)
        return '';

    return string.substring(startingIndex, endingIndex + 1);
}

测试代码如下:
        function testTrim() {
            assertEquals(null, JsUnit.Util.trim(null));
            assertEquals(null, JsUnit.Util.trim(JSUNIT_UNDEFINED_VALUE));
            assertEquals("", JsUnit.Util.trim(""));
            assertEquals("", JsUnit.Util.trim("    "));
            assertEquals("string", JsUnit.Util.trim("string"));
            assertEquals("str  ing", JsUnit.Util.trim("str  ing"));
            assertEquals("string", JsUnit.Util.trim(" string   "));
            assertEquals("string", JsUnit.Util.trim("\r\n string \r\n"));
        }

通过编写类似的js 单元测试代码,你可以在有效分离js的页面和逻辑的基础上,很好的进行对逻辑部分的单元测试。

你可能感兴趣的:(JavaScript,框架,单元测试,JUnit)