第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

API 版本 & 自底向上的 PHP 單元測(cè)試

標(biāo)簽:
PHP Yii

产品需求对角色和终端的组合在不断变化,众多不断快速变化的 API 接口代码在产品的演进中日益成为一个问题;经过讨论分析,最终采用 Yii2 的推荐做法,即通过 modules 实现 版本管理

最近,PHP 单元测试有进展,我们在 ShortUrlService 短链接实现思路 中不仅对内部使用的 service 进行了单元测试,对 ControllerTest 也有尝试;

本文结合 ShortUrlService 的 ShortUrlControllerTest 以及 v1.4 的 DemandControllerTest 来示范一下;

API 版本管理
  • 采纳 Yii2 的方案:通过 module 实现 API 版本;
    结合原来按版本部署的经验和 Los 根据需求提出的对应分拆 Yar RPC 服务的想法,我们最终采用了 Yii2 的推荐做法;

  • 我们产品需求版本 v1.4,对应 module v14,但在 url 中保持 v1.4/$controller/$action

需求版本由两部分组成:major.minor(大版本.小版本);
1.0, 1.1, ..., 1.9, 2.0, ..., 2.9, ...;小版本只有 0-9;

  • 可能会出现这样一个情况:同一个站点,不同页面的 ajax 请求,访问的是不同版本的 API;

  • 同时维护的版本不要超过三个;

自底向上测试
  • 自底向上逐步构建;

  • RPC 首先应当通过测试;

  • API 基于 RPC 构建可靠服务;

  • API 接口测试应集中在自己范围内的测试用例,应当由 RPC 解决的,要放到 RPC 解决;


    自底向上逐步构建

  • 版本 API 的 URL 形如:r=v1.4/demand/c34;

ShortUrlControllerTest
  • 这个示例纯粹是一个示例,旨在说明使用 PHPUnit 如何对 API 接口进行测试;

  • shorturl/controllers/ShortUrlControllerTest.php 示例;

  • Guzzle 是一个不错的 PHP HTTP Client,比 cURL 好用;

    ControllerTest 示例

DemandControllerTest
  • @dataProvider 是一个很好的尝试,准备多套数据,驱动测试;

    @dataProvider 是一个好东西



作者:michael_jia
链接:https://www.jianshu.com/p/69c1e288872c

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消