> 原文出處:https://www.phodal.com/blog/bare-minimum-iot-system-add-test-for-laravel/
似乎在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,這個是獲取首頁的測試。