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() {
  ok( true, "true succeeds" );
  ok( "non-empty", "non-empty string succeeds" );
  ok( false, "false fails" );
  ok( 0, "0 fails" );
  ok( NaN, "NaN fails" );
  ok( "", "empty string fails" );
  ok( null, "null fails" );
  ok( undefined, "undefined fails" );
});​


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

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

範例:

test( "equal test", function() {
  equal( 0, 0, "Zero; equal succeeds" );
  equal( "", 0, "Empty, Zero; equal succeeds" );
  equal( "", "", "Empty, Empty; equal succeeds" );
  equal( 0, 0, "Zero, Zero; equal succeeds" );
  equal( "three", 3, "Three, 3; equal fails" );
  equal( null, false, "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" };
  deepEqual( obj, { foo: "bar" }, "Two objects can be the same in value" );
});​

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

留言

熱門文章