兼容性測試中的javascript的測試之旅

發表于:2012-10-23來源:futurehandw作者:吳穎敏點擊數: 標簽:JavaScript
由于測試中兼容性的考慮不足,導致JS在一定內核瀏覽器下沖突無效,嚴重的外網事故。。。。 雖然現在很多公司注重了代碼的Xunit測試,但對于展現層的Javascript,JQUERY等代碼的測試仍然不是很多,這里將對JS方面的測試及兼容性測試,性能測試留下點Mem

  由于測試兼容性的考慮不足,導致JS在一定內核瀏覽器下沖突無效,嚴重的外網事故。。。。

  雖然現在很多公司注重了代碼的Xunit測試,但對于展現層的Javascript,JQUERY等代碼的測試仍然不是很多,這里將對JS方面的測試及兼容性測試,性能測試留下點Memory。

  JS的Xunit框架現在有很多,jsunit,Qunit,YUITest。

  考量了我們選用Qunit+Qmock的框架進行JS單元測試自動化。

  Qunit的特點:

  支持異步的ajax測試

  支持區分module的測試

  支持測試時間輸出

  Qmock的加入更好的配合了Qunit的測試

  Qunit的判斷類:

  ok(state, message) – 布爾型斷言,message是專門顯示在QUnit界面上,用來區分不同的斷言的

  equals(actual, expected, message) – 相等斷言,actual和expected的值相等時才能通過。

  same(actual, expected, message) – 完全相等斷言,和equals的區別在于它會比較子元素,對于數組和一些自定義對象的比較十分有用。

  raises( block, expected, message ) – 判斷錯誤返回

  Qunit的實現類:

  expect(amount) – 指定某個函數中會有多少個斷言,通常寫在測試函數開頭。

  module(name) – 模塊是測試函數的集合,使用該函數可以在UI中將測試函數按模塊歸類。

  asyncTest( name, expected, test ) – 異步ajax測試使用

  異步與Ajax

  對于異步程序的測試,如setTimeout、setInterval、Ajax等情況,按照上面的方法,在異步調用執行之前,測試就已完成并輸出了結果。

  這時,配合使用QUnit提供的兩個函數:stop( [timeout] ) 和 start(),也可以輕松搞定。

  //Ajax測試

  function ajax(successCallback) {

  $.ajax({

  url: ‘XXXX.php’,

  success: successCallback

  });

  }

  test(‘asynchronous test’, function() {

  // 暫停測試

  stop();

  ajax(function() {

  // 異步調用判斷

  })

  setTimeout(function() {

  //異步測試完成后,恢復

  start();

  }, 2000);

  })

現在WEB2.0JS測試越來越重要了,在即將來臨的webGL時代尤為重要,得惡補JS了
 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97