JSUnitを試す

30分プログラム、その148。JsUnitを試してみる。JsUnit を使った JavaScript のユニットテスト - WebOS Goodiesを参考にした。

結構いいね。テストに失敗したとき、スタックトレースが表示できるあたりが実にすばらしい。

一応、IEでも動く。まあ、IE固有の動作はDOM回りのことが多いから、それほど役にはたたないけど。

ソースコード

ちなみにテストはこんな感じで書ける。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	  "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Ring buffer test</title>
    <script language="JavaScript" type="text/javascript"
	    src="./app/jsUnitCore.js"></script>
    <script language="JavaScript" type="text/javascript"
	    src="../lib/prototype.js"></script>
    <script language="JavaScript" type="text/javascript"
	    src="../RingIterator.js"></script>
    <script language="JavaScript" type="text/javascript">
function setUp(){
   a = [1,2,3];
   it = a.getRingIterator();
}

function testGetTestIterator(){
   assertNotUndefined(it);
}

function testNext(){
   assertEquals(1,it.value());
   it.next();

   assertEquals(2,it.value());
   it.next();

   assertEquals(3,it.value());
   it.next();

   assertEquals(1,it.value());
   it.next();
}

function testClone(){
   assertEquals(1,it.value());
   var it2 = Object.clone(it);
   it2.next();

   assertEquals(1,it.value());
   assertEquals(2,it2.value());
}

function testRing(){
   it.next();

   assertEquals(2,it.value());
   a.push(10);
   a.push(11);
   assertEquals(2,it.value());
}
    </script>
  </head>
  <body>
    <h1>RingBuffer Test File</h1>
  </body>
</html>