qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          Node.js的UnitTest單元測試

            在專業(yè)化的軟件開發(fā)過程中,無論什么平臺(tái)語言,現(xiàn)在都需要UnitTest單元測試. Node.js有built-in的Assert。 今天讓我們來看一下Node.js的單元測試。在這兒我們使用nodeunit,
            
            通過NPM安裝:
            npm install nodeunit -g
            支持命令行,瀏覽器運(yùn)行. 各種斷言。 在node.js下模塊化對于方法導(dǎo)出exports, 如果是對象導(dǎo)出module.exports,模塊兒是單元測試的基礎(chǔ),看下面的node.js代碼:
          var fs = require('fs'),
          global=require('./global.js');
          var utils = {
          startWith: function(s1, s) {
          if (s == null || s == "" || this.length == 0 || s.length > this.length)
          return false;
          if (s1.substr(0, s.length) == s)
          return true;
          else
          return false;
          return true;
          },
          /* Generate GUID */
          getGuid: function() {
          var guid = "";
          for (var i = 1; i <= 32; i++) {
          var n = Math.floor(Math.random() * 16.0).toString(16);
          guid += n;
          }
          return guid;
          },
          /* add log information */
          writeLog: function(log) {
          if(!log) return;
          var text = fs.readFileSync(global.logFile, "utf-8"),
          _newLog = text ? (text + "\r\n" + log) : log;
          fs.writeFile(global.logFile, _newLog, function(err){
          if(err) throw err;
          });
          }
          };
          exports.utils=utils;

          字體:        | 上一篇 下一篇 | 打印  | 我要投稿 

          ./global.js是一個(gè)本地全局變量文件,現(xiàn)在我們對以上代碼使用NodeUnit做測試的node.js代碼:
          var utils=new require('./utils.js');
          this.TestForUtils = {
          'TestgetGuid': function (test) {
          var guid=utils.utils.getGuid();
          test.ok(!!guid, 'getGuid should not be null.');
          test.done();
          },
          'TestWritelog': function (test) {
          var flag=false;
          utils.utils.writeLog("test message");
          flag=true;
          test.ok(flag,'writeLog');
          test.done();
          },
          'TestStartWithWords': function (test) {
          var name="ad_123";
          test.ok(utils.utils.startWith(name, "ad_"),"startwith method should be ok");
          test.done();
          }
          };
            test.ok也是通常我們說的斷言。對于NodeUnit的單元測試程序,也可以使用node-inspector來調(diào)試

          posted on 2014-07-03 18:39 順其自然EVO 閱讀(276) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2014年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 精河县| 塘沽区| 盐津县| 沅陵县| 北安市| 巴林右旗| 卓尼县| 前郭尔| 乳源| 白银市| 彭水| 泾阳县| 宁远县| 玉龙| 都江堰市| 汾阳市| 甘洛县| 无棣县| 普宁市| 沂水县| 射洪县| 马尔康县| 河池市| 咸阳市| 迁西县| 博客| 玉溪市| 永平县| 聂荣县| 芦溪县| 开鲁县| 库车县| 陈巴尔虎旗| 通州市| 昂仁县| 永宁县| 濮阳市| 延寿县| 萨迦县| 五台县| 大埔区|