試着使用jsunit,什麼反應都沒有(對不起,我喜歡直接打開)。.翻閱<ajax design="" patterns="">中的test一章,才發現script.aculo.us中的單元測試支持相當簡單好用。
這裏直接把這本書裏面的單元測試代碼拿出來吧,其實就是script.aculo.us中的測試代碼。
</ajax>
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <title>Queue Test<!--</span-->>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <script src="/run/Lib/js/util.js" type="text/javascript"></script> //util庫,非必需
- <script src="prototype.js" type="text/javascript"></script> //是否需要不知,反正基本上都會用prototye
- <script src="unittest.js" type="text/javascript"></script> //單元測試的庫
- <script src="queue.js" type="text/javascript"></script> //需要測試的代碼
- <link rel="stylesheet" href="test.css" type="text/css" /> //綠色的來源
- </head>
- <body>
- ...
- <!-- Log output -->
- <div id="testlog"></div> //看的懂英文吧,單元測試的輸出在這裏
- <!-- Tests follow --> //下面就是測試使用的代碼了
- <script type="text/javascript" language="javascript" charset="utf-8">
- new Test.Unit.Runner({ //好像就是TestRunner
- q: null, //你寫TestCase也要定義field的
- setup: function( ) { with(this) { //相當於setUp()
- q = new Queue( );
- }},
- testEmptyQueue: function( ) { with(this) { //相當於testXXX()
- assertEqual(0, q.size);
- var items = q.items( );
- assertEqual(0, items.length);
- }},
- ...
- });
- </script>
- <!-- 下面可以有內容,模擬真實網頁中的內容 -->
- </body>
- </html>
最終效果見ajaxify.com/run/reader/queueTest.html
Status | Test | Message |
---|---|---|
passed | testEmptyQueue | 2 assertions, 0 failures, 0 errors |
passed | testAdmit | 2 assertions, 0 failures, 0 errors |
passed | testServe | 3 assertions, 0 failures, 0 errors |
passed | testSeveral | 10 assertions, 0 failures, 0 errors |
passed | testSequence | 12 assertions, 0 failures, 0 errors |
passed | testServeEmptyQueueReturnsNull | 2 assertions, 0 failures, 0 errors |
passed | testListener | 3 assertions, 0 failures, 0 errors |
久違的綠色快感又回來了!