午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 淺談如何提高PHP代碼質(zhì)量之端到端集成測試

淺談如何提高PHP代碼質(zhì)量之端到端集成測試

熱門標簽:溫州外呼系統(tǒng)招商 天津電銷外呼系統(tǒng)違法嗎 銀行信貸電話機器人 上海400客服電話怎么申請 手機外呼系統(tǒng)什么原理 凱立德地鐵站地圖標注 滄州電銷外呼系統(tǒng)價格 400電話個人能不能辦理 合肥ai電銷機器人費用

概述

在這里,我們可以使用為行為驅(qū)動開發(fā)構(gòu)建的工具——官方 PHP 的 Cucumber 實現(xiàn)——Behat。我們可以通過運行以下代碼來安裝它:

$ php composer.phar require --dev behat/behat

增加一個目標到 build.xml(在本文的第一部分中描述了 Phing 設(shè)置)

target name="behat">
	exec executable="bin/behat" passthru="true" checkreturn="true" />
/target>…
target name="run" depends="phpcs,phpcpd,phan,phpspec,behat" />

然后,你應(yīng)該為文件 features/price.feature 的測試創(chuàng)建一個規(guī)范。

Feature: Price Comparison In order to compare prices As a customer I need to break the currency barrier Scenario: Compare EUR and PLN Given I use nbp.pl comparator When I compare “100EUR” and “100PLN” Then It should return some result

這個測試場景非常容易閱讀,并且應(yīng)該給你一個關(guān)于該特性應(yīng)該如何工作的良好印象。不幸的是,計算機通常并不真正理解人類語言,所以現(xiàn)在是為每一步編寫代碼的時候了。

你可以通過運行 ./bin/behat-init 來生成它的代碼模板。它應(yīng)該會創(chuàng)建一個這樣的類:

//features/bootstrap/FeatureContext.php use Behat\Behat\Context\SnippetAcceptingContext;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;
class FeatureContext implements SnippetAcceptingContext{
	/** * Initializes context. */ public function __construct() { }
}

然后你可以執(zhí)行:

$ bin/behat --dry-run --append-snippets

Behat 將自動為場景中定義的每個步驟創(chuàng)建函數(shù)。
現(xiàn)在你可以通過填充函數(shù)的主體來開始實現(xiàn)真正的檢查:

// features/bootstrap/FeatureContext.php
?php
use Behat\Behat\Context\Context;
use Domain\Price;use Domain\PriceComparator;
use Infrastructure\NBPPriceConverter;
/*** Defines application features from the specific context.*/
class FeatureContext implements Context{
	/** @var PriceComparator */ 
	private $priceComparator;
	/** @var int */ 
	private $result; 
	/** * Initializes context. * 
	* Every scenario gets its own context instance.
	* You can also pass arbitrary arguments to the* context constructor through behat.yml. */
	public function __construct() { 
		
	} 
	/** * @Given I use nbp.pl comparator */ 
	public function iUseNbpPlComparator() {
		$this->priceComparator = new PriceComparator(new NBPPriceConverter());
	} 
	/** * @When I compare :price1 and :price2 */
	public function iCompareAnd($price1, $price2) {
		preg_match('/(\d+)([A-Z]+)/', $price1, $match1); 
		preg_match('/(\d+)([A-Z]+)/', $price2, $match2);
		$price1 = new Price($match1[1], $match1[2]);
		$price2 = new Price($match2[1], $match2[2]);
		$this->result = $this->priceComparator->compare($price1, $price2); 
	} 
	/** * @Then It should return some result */ 
	public function itShouldReturnSomeResult() {
		if (!is_int($this->result)) {
			throw new \DomainException('Returned value is not integer');
		} 
	}
}

最后,使用 ./bin/phing 運行所有的測試。你應(yīng)該得到以下結(jié)果:

Buildfile: /home/maciej/workspace/php-testing/build.xmlMyProject > phpcs: MyProject > phpcpd: phpcpd 4.0.0 by Sebastian Bergmann.0.00% duplicated lines out of 103 total lines of code. Time: 17 ms, Memory: 4.00MB MyProject > phan: MyProject > phpspec: / skipped: 0% / pending: 0% / passed: 100% / failed: 0% / broken: 0% / 3 examples2 specs3 examples (3 passed)15ms MyProject > behat: Feature: Price Comparison In order to compare prices As a customer I need to break the currency barrier Scenario: Compare EUR and PLN # features/price.feature:6 Given I use nbp.pl comparator # FeatureContext::iUseNbpPlComparator() When I compare "100EUR" and "100PLN" # FeatureContext::iCompareAnd() Then It should return some result # FeatureContext::itShouldReturnSomeResult()1 scenario (1 passed)3 steps (3 passed)0m0.01s (9.13Mb) MyProject > run: BUILD FINISHED Total time: 1.1000 second

正如你所看到的,Behat 準備了一份很好的報告,說明我們的應(yīng)用程序做了什么,結(jié)果是什么。下一次,當項目經(jīng)理詢問你在測試中涉及到哪些場景時,你可以給他一個 Behat 輸出!

1、測試的結(jié)構(gòu)

每個測試都包括:

  • 對該場景的一些準備,用“Given”部分表示
  • “When”部分所涵蓋的一些動作
  • 一些檢查被標記為“Then”部分

每個部分都可以包含多個與“And”關(guān)鍵字連接的步驟:

Scenario: Compare EUR and PLN Given nbp.pl comparator is available And I use nbp.pl comparator When I compare "100EUR" and "100PLN" And I save the result Then It should return some result And the first amount should be greater

2、上下文

Behat 允許你為你的測試定義多個上下文。這意味著你可以將步驟代碼分割成多個類,并從不同的角度去測試你的場景。

你可以例如:為 web 上下文編寫代碼,它將使用你的應(yīng)用程序 HTTP 控制器運行你的測試步驟。你還可以創(chuàng)建“domain”上下文,它將只使用 PHP API 調(diào)用來運行你的業(yè)務(wù)邏輯。通過這種方式,你可以單獨地測試業(yè)務(wù)邏輯集成,從端到端應(yīng)用程序測試。

關(guān)于如何在 Behat 建立許多上下文的更多信息,請參考http://behat.org/en/latest/userguide/context.html的文檔。

3、如何使用Behat 

正如一開始所提到的,你可以使用 Behat 進行集成測試。通常情況下,你的代碼依賴于一些外部的第三方系統(tǒng)。當我們在第 2 部分中編寫單元測試時,我們總是假設(shè)外部依賴關(guān)系像預(yù)期的那樣工作。使用 Behat,你可以編寫測試場景,它將自動運行你的代碼,并檢查它是否正確地使用真實場景的服務(wù)。

最重要的是,Behat 對于測試系統(tǒng)使用的復(fù)雜的端到端場景非常有用。它允許你隱藏在一個可讀性的名字后面運行測試步驟所需的復(fù)雜代碼,并編寫一個人人都能理解的場景。

總結(jié)

從以上的文章中,你已經(jīng)學(xué)習(xí)了如何在你的項目中設(shè)置六個有用的工具:

  • PHing 用于運行你的構(gòu)建
  • PHPCS 用于自動檢查代碼格式
  • PHPCPD 用于檢測重復(fù)代碼的
  • Phan 用于高級靜態(tài)代碼分析
  • PHPSpec 用于單元測試
  • Behat 用于端到端和集成測試

現(xiàn)在,你可以向 git 提交鉤子添加 ./bin/phing,并設(shè)置持續(xù)集成來運行每個提交的測試。

是不是突然之間,沒有什么能阻止你寫出高質(zhì)量的 PHP 代碼!

以上就是淺談如何提高PHP代碼質(zhì)量之端到端集成測試的詳細內(nèi)容,更多關(guān)于如何提高PHP代碼質(zhì)量之端到端集成測試的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 詳解Yaf框架PHPUnit集成測試方法
  • PHP單元測試配置與使用方法詳解
  • PHPUnit + Laravel單元測試常用技能
  • PHP使用phpunit進行單元測試示例
  • php使用yield對性能提升的測試實例分析
  • 高質(zhì)量PHP代碼的50個實用技巧必備(下)
  • 高質(zhì)量PHP代碼的50個實用技巧必備(上)
  • 很讓人受教的 提高php代碼質(zhì)量36計
  • 寫出高質(zhì)量的PHP程序

標簽:金華 酒泉 七臺河 赤峰 溫州 洛陽 白城 怒江

巨人網(wǎng)絡(luò)通訊聲明:本文標題《淺談如何提高PHP代碼質(zhì)量之端到端集成測試》,本文關(guān)鍵詞  淺談,如何,提高,PHP,代碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談如何提高PHP代碼質(zhì)量之端到端集成測試》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談如何提高PHP代碼質(zhì)量之端到端集成測試的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    中文字幕亚洲精品| 蜜桃久久久久久| 日韩中文字幕一区二区三区| 亚洲第一页自拍| 波多野结衣在线免费观看| 日韩成人免费看| 国内伊人久久久久久网站视频| 大又大又粗又硬又爽少妇毛片 | 国产精品白丝jk喷水视频一区| 稀缺小u女呦精品呦| 婷婷中文字幕一区三区| av在线播放亚洲| 丁香亚洲综合激情啪啪综合| 四虎永久国产精品| 亚洲免费观看高清完整 | 九九热久久66| 欧美色精品在线视频| 无码人妻精品一区二区三区在线 | 欧美 日韩 国产 激情| 亚洲精品视频一二三| 亚洲欧洲精品一区二区| 玛丽玛丽电影原版免费观看1977| 欧美一级bbbbb性bbbb喷潮片| 亚洲一区二区美女| 免费一级a毛片| 国产欧美日韩网站| 久久国产精品久久久| 另类中文字幕网| 在线观看国产福利| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 97超级在线观看免费高清完整版电视剧| 色婷婷精品久久二区二区密| 91久久精品一区二区别| 亚洲视频每日更新| 五月天中文字幕| 国产成人无码精品| 免费一级a毛片夜夜看| 一女三黑人理论片在线| 人妻激情另类乱人伦人妻| 欧美一区二区三区在线电影| 懂色av一区二区三区蜜臀| 国产乱淫av片免费| 欧美精品国产精品久久久| 伊人一区二区三区久久精品| 欧美精品一区二区三区一线天视频| 91亚洲永久精品| 免费黄色av片| 国产视频在线观看网站| 久久影视电视剧免费网站| 精品视频1区2区| 久久女同互慰一区二区三区| 日韩一区欧美二区| 国产美女高潮视频| 中国一级黄色录像| 这里只有精品视频| 久久毛片高清国产| 中文字幕一区二区三区手机版 | 中文字幕不卡每日更新1区2区| 国产精品一区二区久久| 亚洲性av在线| 爽爽淫人综合网网站| 欧美国产一级片| 小泽玛利亚一区二区免费| 91ts人妖另类精品系列| 丝袜亚洲另类丝袜在线| 国产精品不卡在线| 7777精品伊人久久久大香线蕉的 | 另类小说综合欧美亚洲| 国产中文字幕视频| 30一40一50老女人毛片| 欧美日韩中文字幕在线播放| 4444kk亚洲人成电影在线| 男女h黄动漫啪啪无遮挡软件| 正在播放亚洲| 国产成人精品一区二区三区福利| 91精品视频专区| 亚洲男人的天堂av| 国产精品男女视频| 中文字幕在线观看二区| 91日韩中文字幕| 日韩精品一区二区三区国语自制| 永久免费av无码网站性色av| 亚洲视频小说| 欧美一区二区综合| 日韩丝袜情趣美女图片| 亚欧在线观看视频| 无码人妻精品一区二| 精品亚洲欧美一区| 国产精品传媒视频| 成人一区二区三区在线观看| 日韩精品免费视频人成| 特级片在线观看| 国产精品视频分类| 国产一级二级在线观看| www成人啪啪18软件| 日韩国产一区二| 91激情五月电影| 日韩免费在线观看视频| 日本黄大片在线观看| 午夜免费福利在线| 久久久久久久片| 亚洲女人毛片| mm131午夜| chinese少妇国语对白| 日韩精品视频久久| 国产有色视频色综合| 国产精品夜间视频香蕉| 一区二区三区四区视频在线观看 | 欧美成人久久久免费播放| 国产成人一级片| 日本一区二区黄色| 成年人在线免费看片| 日本乱子伦xxxx| 亚洲欧美色视频| 亚洲春色一区二区三区| 蜜桃av噜噜一区| 老司机午夜精品视频在线观看| 内射无码专区久久亚洲| 久久一区精品| 99re热视频这里只精品| 国产精品高潮呻吟久久久| 亚洲精品一区二区三区影院忠贞| 麻豆av免费在线| 神马影院一区二区| 老头吃奶性行交视频| 日本一区二区免费视频| 精品久久久99| 欧美大片xxxx| 亚洲精品无码久久久| 日韩精品一区在线观看| 日韩精品在在线一区二区中文| 久久久久久久久久99| 国产精品日产欧美久久久久| 久久久久亚洲精品| 精品蜜桃传媒| 裸体裸乳免费看| 久久精品一区二| 日本美女视频一区| 特级毛片www| 一级片免费网站| 国精产品视频一二二区| 亚洲图片综合网| www黄色在线| 国产真实乱子伦| 伊人国产在线观看| 奇米色一区二区三区四区| a级高清视频欧美日韩| 欧美日韩国产成人在线免费| 国产欧美一区二区三区另类精品| 亚洲av毛片基地| 中文字幕制服丝袜成人av | 午夜精品三级久久久有码| 中文字幕国产一区| 日韩一区二区在线视频| 91久久精品国产| 在线观看欧美激情| 天天操夜夜操很很操| 午夜影院在线看| 久久福利资源站| 亚洲av成人精品一区二区三区在线播放 | 国产精品一区二区人人爽| 久久综合亚州| 亚洲6080在线| 精品一区二区三区视频日产| 在线免费观看日本一区| 成人精品视频一区二区三区尤物| 成人免费视频国产免费| 国产精品无码午夜福利| 国产美女网站在线观看| 国产成人看片| 欧美精品激情在线| 日韩一区二区在线免费观看| 亚洲丝袜制服诱惑| 久久精品国产999大香线蕉| 69xxxx国产| 欧美自拍偷拍网| av中文字幕网址| 在线成人av电影| 91精品综合视频| 美女福利精品视频| 精品美女一区二区三区| 亚洲香肠在线观看| 99久久婷婷国产综合精品| 蜜臀av免费在线观看| 国产高潮久久久| 亚洲一区二区自偷自拍| 成人综合久久网| 日韩在线视频在线| 久久av一区二区三区亚洲| 57pao国产成人免费| 亚洲视频第一页| 欧美日韩一区二区三区四区| 亚洲另类在线视频| 91麻豆国产精品久久| 日韩精品欧美精品| 国产成人精品白浆久久69| 日韩欧美视频在线免费观看| 日韩一级av毛片| 久久国产免费视频| 在线免费视频a| 波多野结衣与黑人| 久久综合九色欧美狠狠| 51国产成人精品午夜福中文下载 | 乳色吐息在线观看| 国产精品专区在线| 五月婷婷综合色| av资源一区二区| 国产精品福利片| 久久久久久久久久久亚洲| 亚洲女人被黑人巨大进入al| 欧美一区午夜精品| 在线观看亚洲a| 亚洲成av人片| 亚洲美腿欧美偷拍| 国产欧美一区二区精品秋霞影院| 国产成人自拍高清视频在线免费播放| 香蕉视频免费看| 99久久99久久久精品棕色圆| jizz国产在线观看| 日产精品久久久久| 精品一区在线观看视频| 粉嫩精品久久99综合一区| 最近中文字幕无免费| 亚洲免费在线播放视频| 亚洲欧美日韩一级| www.超碰com| 欧美色图另类小说| 波多野结衣乳巨码无在线| 久久观看最新视频| 可以免费看的黄色网址| 亚洲免费视频一区| 亚洲电影免费| 涩涩日韩在线| 亚洲一卡二卡三卡| 亚洲一区二区四区| 亚洲国产精品久久久久婷婷老年 | 国产精品久久久久久亚洲av| 天天爽夜夜爽视频| 特黄视频免费观看| 天天综合网久久| 国产免费中文字幕| www.久久com| 在线播放av网址| 大桥未久恸哭の女教师| 亚洲综合自拍网| 国产亚洲精品熟女国产成人| 中文字幕av久久爽一区| 亚洲一级黄色录像| 情侣偷拍对白清晰饥渴难耐| 国产又色又爽又高潮免费| 91精品国产闺蜜国产在线闺蜜| 欧美性生交大片| 国产在线观看99| 日本免费在线观看视频| 一级做a爱片性色毛片| 国产女人18毛片18精品| 免费观看成年人视频| 图片区 小说区 区 亚洲五月| 久久精品道一区二区三区| 日本sm残虐另类| 国产成人久久精品77777最新版本| 成人h动漫精品| 欧美国产日产图区| 亚洲免费在线电影| 狠狠做深爱婷婷久久综合一区 | 美国十次了思思久久精品导航| 九色|91porny| 91老司机福利 在线| 综合网在线视频| 午夜精品在线看| 欧美精品久久一区| 亚洲а∨天堂久久精品喷水| 亚洲图片在区色| 欧美激情中文字幕乱码免费| 国产精品第一区| 国产日韩精品推荐| 国产手机视频在线观看| 精品一卡二卡三卡| 日本人dh亚洲人ⅹxx| 免费看日本黄色片| 制服.丝袜.亚洲.中文.综合懂色| 国产一区二区麻豆| 日韩成人午夜精品| 99久精品国产| 亚洲综合色自拍一区| 欧美最猛性xxxxx直播| 亚洲国产精品yw在线观看| 久久精品国产精品| 国产精品狠色婷| 久久99九九| 亚洲理论电影在线观看| 不用播放器的免费av| 亚洲一区二区三区蜜桃| 午夜写真片福利电影网| 黑人欧美xxxx| 精品成人一区二区三区| 久久在线免费观看视频| 国产精品尤物福利片在线观看| 国产一区免费在线| 999在线观看视频| 少妇伦子伦精品无吗| 欧美日韩免费一区二区| 国产高中女学生第一次| 国产电影一区在线| 一区二区三区日韩在线观看| 日韩一区二区三区四区五区六区| 日韩在线观看免费高清完整版| 国产精品视频自在线| 在线精品日韩| 日本成人xxx| 久久久久久av无码免费网站| 蜜臀久久久久久999| 久久蜜臀精品av| 欧美性三三影院| 久久手机精品视频| 国产伦精品一区二区三| 777久久久精品一区二区三区| 国产三级国产精品| 中文字幕观看在线| 国产·精品毛片| 大桥未久av一区二区三区| 亚洲欧美中文另类| 成人精品在线观看| 97在线国产视频| 国产高潮呻吟久久| 97在线视频人妻无码| 99re这里都是精品| 欧美日韩免费一区二区三区视频| 久久国产精品99国产精| 韩国一区二区三区美女美女秀 | 国产熟女高潮视频| 国产3级在线观看| 好吊色一区二区| 国产精品国产三级国产三级人妇 | 日本欧美在线视频| 日本三日本三级少妇三级66| 欧美xxxxx精品| 中文字幕乱码视频| 91在线一区二区| 91精品国产乱| 国产成人综合av| 国产成人艳妇aa视频在线| 四虎国产精品成人免费入口| 一级全黄少妇性色生活片| 久久综合精品国产一区二区三区 | 国产91精品入口| 欧美色偷偷大香| 欧美在线影院在线视频| 久久综合亚洲精品| 69夜色精品国产69乱| 蜜臀av亚洲一区中文字幕| 精品久久久视频| 欧美国产日韩免费| 法国空姐在线观看免费| 长河落日免费高清观看| 色哟哟国产精品色哟哟| 亚洲一区二区av在线| 不卡av在线播放| 一区二区在线观看网站| 91精品久久久久久久久久久久| 亚洲区小说区图片区| 亚洲综合免费观看高清完整版| xvideos成人免费中文版| 亚洲精品无人区| 免费毛片视频网站| 久久综合伊人| 在线免费一区三区| 国产91久久婷婷一区二区| 日本少妇高潮喷水视频| 日韩三级一区二区三区| 97成人超碰视| 亚洲免费一在线| 欧日韩一区二区三区| 女女互磨互喷水高潮les呻吟| 日韩和欧美一区二区| 精品视频在线免费| 成人性生交大片免费看视频直播| 性欧美videossex精品| 中文人妻熟女乱又乱精品| 中国色在线观看另类| 久久久国产视频| 妞干网视频在线观看| 中文字幕在线字幕中文| 久久精品欧美一区二区三区不卡| 亚洲免费av网址| 亚洲视频精品一区| 国产一级二级三级| 国产三级精品视频| 久久艳片www.17c.com| 国产 日韩 亚洲 欧美| 男人天堂视频在线| 尤物在线观看一区| 欧美中文字幕视频在线观看| 99视频在线视频| 午夜精品久久久久久久99| 一本一道久久a久久精品综合蜜臀| 国产精品第七十二页| 成人在线观看一区二区| 蜜桃一区二区三区在线| 日韩精品影音先锋| 日本不卡在线播放| 免费在线观看一级片| 国产日韩欧美亚洲| 欧美激情精品久久久久久黑人| 乱子伦视频在线看| 亚洲精品久久久久久无码色欲四季| 色狠狠一区二区| 国产精品视频福利| 超碰手机在线观看| 中文字幕中文乱码欧美一区二区|