原文出處:https://www.phodal.com/blog/bare-minimum-iot-system-add-test-for-laravel/
似乎在ThoughtWorks的幾天之后,對(duì)測(cè)試有了點(diǎn)認(rèn)識(shí)。于是試著將測(cè)試擴(kuò)展到自己所知道和認(rèn)識(shí)的領(lǐng)域,換句話說(shuō),需要添加這些測(cè)試到自己的這個(gè)項(xiàng)目上:
源碼:http://github.com/gmszone/iot
首頁(yè):http://iot.phodal.com
說(shuō)點(diǎn)關(guān)于測(cè)試的話,這里只是因?yàn)樵谶@幾天的感覺(jué)中,覺(jué)得添加測(cè)試是有必要的。這里的所謂的必要并不是指你在添加功能的時(shí)候,而是指你在后期進(jìn)行修改的時(shí)候。
寫(xiě)測(cè)試并不會(huì)提高多少的編程能力,但是寫(xiě)測(cè)試的目的是為了保證功能是正解的,如果只是簡(jiǎn)單的一次性項(xiàng)目,不需要后期維護(hù),那么這個(gè)時(shí)候測(cè)試不一定是必需的。我們也不一定要嚴(yán)格去按照TDD的流程來(lái)辦事,我們所要做的事只是簡(jiǎn)單的功能。而如果在長(zhǎng)期維護(hù)的項(xiàng)目上,測(cè)試是有必要的,功能與需求在不斷地增加,我們需要對(duì)項(xiàng)目進(jìn)行不斷地改變。
添加測(cè)試雖然會(huì)帶來(lái)一定的負(fù)擔(dān),但是從重構(gòu)的角度來(lái)說(shuō),這個(gè)是有利的。測(cè)試的目的在于保證程序能正確運(yùn)行。
因?yàn)檫@里是用Laravel框架來(lái)做的RESTful服務(wù),那么我們也需要對(duì)這個(gè)進(jìn)行一個(gè)簡(jiǎn)單的測(cè)試,而且Laravel也提供了測(cè)試,那么可想而知在一個(gè)項(xiàng)目里面測(cè)試是有必要的。而且框架也提供了測(cè)試,所以我們需要寫(xiě)個(gè)測(cè)試不是么。對(duì)于php來(lái)說(shuō),php是一個(gè),應(yīng)該也是用得廣泛的一個(gè)。
如何安裝可以直接上官網(wǎng),當(dāng)然這里也提供
wget https://phar.phpunit.de/phpunit.phar
php phpunit.phar
測(cè)試的代碼自然就是
php phpunit.phar
具體可見(jiàn)項(xiàng)目代碼下面的rest
Larvel的app/tests有一個(gè)CaseTest這里就暫時(shí)不修改了。我們先來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的get,參考官方的示例
public function testGetHomepage()
{
$crawler = $this->client->request('GET', '/');
$this->assertTrue($this->client->getResponse()->isOk());
}
函數(shù)名的開(kāi)頭要用test,這個(gè)是獲取首頁(yè)的測(cè)試。
更多建議: