最小物聯網系統設計——給Laravel新增測試

Phodal發表於2014-03-06

似乎在ThoughtWorks的幾天之後,對測試有了點認識。於是試著將測試擴充套件到自己所知道和認識的領域,換句話說,需要新增這些測試到自己的這個專案上:

關於

關於專案

原始碼:http://github.com/gmszone/iot

首頁:http://iot.phodal.com

關於測試

說點關於測試的話,這裡只是因為在這幾天的感覺中,覺得新增測試是有必要的。這裡的所謂的必要並不是指你在新增功能的時候,而是指你在後期進行修改的時候。

寫測試並不會提高多少的程式設計能力,但是寫測試的目的是為了保證功能是正解的,如果只是簡單的一次性專案,不需要後期維護,那麼這個時候測試不一定是必需的。我們也不一定要嚴格去按照TDD的流程來辦事,我們所要做的事只是簡單的功能。而如果在長期維護的專案上,測試是有必要的,功能與需求在不斷地增加,我們需要對專案進行不斷地改變。

新增測試雖然會帶來一定的負擔,但是從重構的角度來說,這個是有利的。測試的目的在於保證程式能正確執行。

關於phpunit及Laravel

因為這裡是用Laravel框架來做的RESTful服務,那麼我們也需要對這個進行一個簡單的測試,而且Laravel也提供了測試,那麼可想而知在一個專案裡面測試是有必要的。而且框架也提供了測試,所以我們需要寫個測試不是麼。對於php來說,php是一個,應該也是用得廣泛的一個。

PHPUnit

安裝phpunit

如何安裝可以直接上官網,當然這裡也提供

wget https://phar.phpunit.de/phpunit.phar
php phpunit.phar

測試的程式碼自然就是

php phpunit.phar

具體可見專案程式碼下面的rest

新增測試

Larvel的app/tests有一個CaseTest這裡就暫時不修改了。我們先來建立一個簡單的get,參考官方的示例



    public function testGetHomepage()
    {
        $crawler = $this->client->request('GET', '/');

        $this->assertTrue($this->client->getResponse()->isOk());
    }

函式名的開頭要用test,這個是獲取首頁的測試。

相關文章