国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Laravel 項目開發(fā)規(guī)范 Testing 規(guī)范

2023-02-16 17:12 更新

漸進式測試

100% 的測試覆蓋率,需要花費在測試代碼上的工時,絲毫不亞于業(yè)務代碼的開發(fā)時間。

如開發(fā) Deadline 不允許,做不到 100% 測試覆蓋率,應該考慮對程序入口進行測試。這種方式的時間利用比最高。

Laravel 項目中程序入口,一般有以下四種:

  • Web —— 程序的網(wǎng)頁模塊;
  • API —— 程序的 API 模塊;
  • Admin —— 管理員后臺頁面;
  • Job —— 隊列任務;
  • Command —— 自定義的 Artisan 命令行。

對這些入口進行 100% 的測試覆蓋,可以很大范圍內(nèi)測試到項目代碼。

測試速度

編寫測試時,必須永遠把執(zhí)行速度放在首位。

單元測試

所有的單元測試,都必須放置于 tests/Unit 目錄下。且必須使用子目錄存儲,絕不直接放置于此目錄下。

集成測試

所有的集成測試,都必須放置于 tests/Feature 目錄下。且必須使用子目錄存儲,絕不直接放置于此目錄下。

常見的子目錄按照入口,應該劃分如下:

├── API
├── Web
├── Admin
├── Command
└── Job

Fixture 數(shù)據(jù)

測試中使用到樣例數(shù)據(jù),必須放置于 tests/Fixtures 目錄中。且必須使用子目錄存儲,絕不直接放置于此目錄下。

運行多個環(huán)境

測試代碼必須在開發(fā)同事的機器上能運行,測試必須在 Beta 環(huán)境下能運行。

并發(fā)測試

所有的測試,都 必須 支持并發(fā)測試,這樣可以極大節(jié)省 CI 中測試運行的時間,提高整個工作流的速度。

每次提交代碼前,使用以下命令跑一下不報錯即可:

php artisan test -p

支持并發(fā)測試:

composer require brianium/paratest

用例測試而不是代碼測試

寫 Feature Test 的時候,必須使用用例測試(User Story),而不是代碼測試。

?代碼測試的例子:

// tests/Feature/API/V1/UserAddressControllerTest.php

class UserAddressControllerTest extends APITest
{
    public function test_controller_index_method()
    {
    }

    public function test_controller_create_method()
    {
    }
}

? 用例測試:

// tests/Feature/API/V1/UserAddressControllerTest.php

class UserAddressControllerTest extends APITest
{
    public function test_user_can_view_user_address_index()
    {
    }

    public function test_guest_can_not_create_user_address()
    {
    }

    public function test_user_can_create_user_address()
    {
    }
}

絕不測試第三方服務

程序中經(jīng)常會使用第三方服務,例如發(fā)送郵件使用 SendCloud 的 API 、或發(fā)送短信 API。

將這些服務 API 調(diào)用封裝到 Service 層,編寫測試代碼時,對其進行 Mock 。

建議:檢測測試代碼是否使用第三方服務,最好的方法就是把 Wifi 關掉,然后跑一遍測試。如果有錯誤發(fā)生,證明調(diào)用了第三方 API。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號