iT邦幫忙

4

學習用Jasmine在JavaScript上作測試(一)

JavaScript也要做測試???

在JavaScript越來越複雜的今日,做好測試,是前端人員越來越需要的生存技能!!!

因此藉這個機會,來分享在JavaScript鼎鼎大名的測試框架Jasmine,透過測試,讓我們的程式碼更穩固。
Jasmine是BDD/TDD框架。

TDD大家可能比較常聽到,就是 Test-driven development,測試驅動開發,這種開發模式,把寫測試提到寫程式的前面,先寫test,讓程式 fail,再把code補上去,讓test通過。

(關於TDD,這裡有一篇文章寫得不錯,大家可參考 http://ithelp.ithome.com.tw/question/10081081)

那什麼又是BDD,Behavior-driven development,翻成中文就是行為驅動開發。把測試改成行為,這是搞什麼名堂呢?

它和 TDD一樣是單元測試的工具,但是TDD通常著重的是我放什麼東西進去,會出來什麼東西,然後作評斷,看是否與預期相等。

而 BDD則跳出這種input、output的資料面向,而是改從程式運作的面向來看待,用程式的行為當成是測試的點,也因此,它用了一套非常接近自然語言的語法,來描述測試的過程,寫測試就好像在寫文件一樣。

這樣說有點抽像,讓我們實際來看一段Jasmine的測試語法:

describe("A spec", function() {
  it("is just a function, so it can contain any code", function() {
    var foo = 0;
    foo += 1;

    expect(foo).toEqual(1);
  });

  it("can have more than one expectation", function() {
    var foo = 0;
    foo += 1;

    expect(foo).toEqual(1);
    expect(true).toEqual(true);
  });
});

(來源:http://pivotal.github.com/jasmine/)
上面的語法,不用多作解釋,只要英文不要太差的,大概都能知道在測試的是什麼了。

今天就先講到這裡,下回見~

想先知道更多的,可以到Jasmine在Github上的專案去了解一下:
https://github.com/pivotal/jasmine/wiki/


1 則留言

0
ted99tw
iT邦高手 1 級 ‧ 2012-07-17 00:13:07

有什麼好說的,新帖趕快推再說~~~

我要留言

立即登入留言