QUnit Asserting Results



QUnit 提供三種基本的assertions

  • ok( truthy [, message ] )
  • equal( actual, expected [, message ] )

  • deepEqual( actual, expected [, message ] )

1.  ok ( truthy, [, message] )

這個function只需要一個參數,輸入ture
的話就會出現pass的結果,反之輸入false
就會出現fails。

範例:

test"ok test"function({
  oktrue"true succeeds" );
  ok"non-empty""non-empty string succeeds" );
  okfalse"false fails" );
  ok0"0 fails" );
  okNaN"NaN fails" );
  ok"""empty string fails" );
  oknull"null fails" );
  okundefined"undefined fails" );
});


2.equal( actual, expected [, message ] )

equal照字的意思就是去比對actual跟expected這
兩個參數的值是不是相同的 (他是利用 "==" 來做比
對,所以比對比較不是那麼嚴格),相同的化就是會
出現pass,反之就是fails。

範例:

test"equal test"function({
  equal00"Zero; equal succeeds" );
  equal""0"Empty, Zero; equal succeeds" );
  equal"""""Empty, Empty; equal succeeds" );
  equal00"Zero, Zero; equal succeeds" );
  equal"three"3"Three, 3; equal fails" );
  equalnullfalse"null, false; equal fails" );
});


3.  deepEqual( actual, expected [, message ] )

deepEqual使用方式跟equal一樣,但是他比較actual跟
expected除了比較值之外還有比對資料型態,他利用 "==="
來做比對,例如underfined跟null,0還有空白字串( " " )是不一樣的
,但是在equal者是相同的,使用上要稍微瞭解這兩種的不同。

還有deepEqual還可以處理NaN,dates,regular expressions, array和
function,但是使用equal的話只能比對物件( the object identity)的不同。

範例:

test"deepEqual test"function({
  var obj foo"bar" };
  deepEqualobjfoo"bar" }"Two objects can be the same in value" );
});

在QUnit的官方文件中有提到使用deepEqual是比較好的選擇,畢竟他會去比較兩個值之外還會去比較資料的型態。
張貼留言

這個網誌中的熱門文章

Unions 在C語言的簡單介紹

解釋scope.$apply用來做什麼? -- AngularJS

JavaScript的Timer用法