亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Verzeichnis suchen
閱讀前篇 簡(jiǎn)介 Yii 是什么 從 Yii 1.1 升級(jí) 入門 安裝 Yii 運(yùn)行應(yīng)用 第一次問(wèn)候 使用Forms 數(shù)據(jù)庫(kù)應(yīng)用 使用 Gii 生成代碼 進(jìn)階 應(yīng)用結(jié)構(gòu) 概述 入口腳本 應(yīng)用(Applications) 應(yīng)用組件(Application Components) 控制器(Controllers) 模型(Models) 視圖(views) 模塊(Modules) 過(guò)濾器(Filters) 小部件(Widgets) 前端資源(Assets) 擴(kuò)展(Extensions) 請(qǐng)求處理 運(yùn)行概述 啟動(dòng)引導(dǎo)(Bootstrapping) 路由和創(chuàng)建URL 請(qǐng)求(Requests) 響應(yīng)(Responses) Sessions 和 Cookies 錯(cuò)誤處理(Handling Errors) 日志(Logging) 關(guān)鍵概念 組件(Component) 屬性(Property) 事件(Events) 行為(Behaviors) 配置(Configurations) 別名(Aliases) 類自動(dòng)加載(Autoloading) 服務(wù)定位器(Service Locator) 依賴注入容器(Dependency Injection Container) 配合數(shù)據(jù)庫(kù)工作 數(shù)據(jù)庫(kù)訪問(wèn) (Data Access Objects) 查詢生成器(Query Builder) 活動(dòng)記錄(Active Record) 數(shù)據(jù)庫(kù)遷移(Migrations) Sphinx Redis MongoDB Elasticsearch 接收用戶數(shù)據(jù) 創(chuàng)建表單(Creating Forms) 輸入驗(yàn)證(Validating Input) 文件上傳(Uploading Files) 收集列表輸入(Collecting Tabular Input) 多模型的復(fù)合表單(Getting Data for Multiple Models) 顯示數(shù)據(jù) 格式化輸出數(shù)據(jù)(Data Formatting) 分頁(yè)(Pagination) 排序(Sorting) 數(shù)據(jù)提供器(Data Providers) 數(shù)據(jù)小部件(Data Widgets) 客戶端腳本使用(Working with Client Scripts) 主題(Theming) 安全 認(rèn)證(Authentication) 授權(quán)(Authorization) 處理密碼(Working with Passwords) 客戶端認(rèn)證(Auth Clients) 最佳安全實(shí)踐(Best Practices) 緩存 概述 數(shù)據(jù)緩存 片段緩存 頁(yè)面緩存 HTTP 緩存 RESTfull Web服務(wù) 快速入門(Quick Start) 資源(Resources) 控制器(Controllers) 路由(Routing) 格式化響應(yīng)(Response Formatting) 授權(quán)認(rèn)證(Authentication) 速率限制(Rate Limiting) 版本(Versioning) 錯(cuò)誤處理(Error Handling) 開(kāi)發(fā)工具 調(diào)試工具欄和調(diào)試器 使用Gii生成代碼 生成API文檔 測(cè)試 概述(Overview) 配置測(cè)試環(huán)境(Testing environment setup) 單元測(cè)試(Unit Tests) 功能測(cè)試(Function Tests) 驗(yàn)收測(cè)試(Acceptance Tests) 測(cè)試夾具(Fixtures) 高級(jí)專題 高級(jí)應(yīng)用模板 創(chuàng)建自定義應(yīng)用程序結(jié)構(gòu) 控制臺(tái)命令 核心驗(yàn)證器(Core Validators) 國(guó)際化 收發(fā)郵件 性能優(yōu)化 共享主機(jī)環(huán)境 模板引擎 集成第三方代碼 小部件 Bootstrap 小部件 Jquery UI 助手類 概述 Array 助手(ArrayHelper) Html 助手(Html) Url 助手(Url)
Figuren

概述

測(cè)試

測(cè)試是軟件開(kāi)發(fā)的一個(gè)重要組成部分。不管我們是否意識(shí)到,我們一直在不斷地進(jìn)行測(cè)試。 例如,當(dāng)我們?cè)谟?PHP 寫一個(gè)類的時(shí)候,我們可能用 echo 或者 die 語(yǔ)句一步一步簡(jiǎn)單的調(diào)試 驗(yàn)證我們實(shí)現(xiàn)的代碼是否按照最初的計(jì)劃工作。在開(kāi)發(fā) web 應(yīng)用的時(shí)候,我們?cè)诒韱沃休斎?一些測(cè)試數(shù)據(jù)來(lái)確保頁(yè)面能夠如預(yù)期那樣和我們進(jìn)行交互。

測(cè)試過(guò)程可能是自動(dòng)的,所以每次我們需要驗(yàn)證的時(shí)候,我們只需要調(diào)用它就可以測(cè)試代碼 了。 驗(yàn)證代碼執(zhí)行結(jié)果是否符合我們的計(jì)劃叫做測(cè)試,測(cè)試過(guò)程的創(chuàng)建以及進(jìn)一步執(zhí)行叫做 自動(dòng)化測(cè)試,這是這些測(cè)試章節(jié)的主要主題。

帶著測(cè)試進(jìn)行開(kāi)發(fā)

測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)和行為驅(qū)動(dòng)開(kāi)發(fā)(BDD)在開(kāi)始編寫實(shí)際代碼之前,首先通過(guò)描述一段 代碼的行為或?qū)⑵渥鳛橐唤M場(chǎng)景或測(cè)試的全部特征,然后創(chuàng)建符合這些測(cè)試預(yù)期驗(yàn)證的行為 實(shí)現(xiàn)。

開(kāi)發(fā)一個(gè)功能的過(guò)程如下:

  • 創(chuàng)建一個(gè)描述一個(gè)功能被實(shí)現(xiàn)測(cè)試。
  • 運(yùn)行這個(gè)測(cè)試來(lái)確保功能失敗.因?yàn)檫@是沒(méi)有實(shí)現(xiàn)之前的預(yù)期。
  • 編寫簡(jiǎn)單代碼確保這個(gè)測(cè)試通過(guò)。
  • 運(yùn)行所有測(cè)試確保所有測(cè)試都通過(guò)。
  • 優(yōu)化代碼確保測(cè)試依然可以通過(guò)。

走完上面的過(guò)程之后,為其他功能或者擴(kuò)展重復(fù)上面測(cè)試過(guò)程。如果功能發(fā)生變化,測(cè)試也需 要跟著變化。

技巧: 如果你覺(jué)得你做一些很小很簡(jiǎn)單的迭代是在浪費(fèi)時(shí)間,請(qǐng)嘗試覆蓋更多的測(cè)試 場(chǎng)景,這樣你就可以在執(zhí)行測(cè)試之前做更多的嘗試。如果你的調(diào)試過(guò)多,試著做相反的工作。

在做一些具體的實(shí)現(xiàn)之前創(chuàng)建測(cè)試的原因是,這允許我們后期專注于我們想要的實(shí)現(xiàn),并且 可以花費(fèi)更多的精力到實(shí)現(xiàn)細(xì)節(jié)。在涉及功能調(diào)整的時(shí)候,這會(huì)使得抽象更合理、測(cè)試維護(hù) 更簡(jiǎn)單或者使得耦合元件更少。

這種做法的優(yōu)點(diǎn)如下:

  • 在計(jì)劃和實(shí)現(xiàn)發(fā)生變更的時(shí)候,可以讓你在同一時(shí)間只專注于一件事情。
  • 更多功能更詳細(xì)的覆蓋測(cè)試的結(jié)果,如果測(cè)試都通過(guò)好比再也沒(méi)有什么問(wèn)題了。

在很長(zhǎng)一段時(shí)間內(nèi),這通常會(huì)給你提供一個(gè)有效的時(shí)間節(jié)省。

技巧: 如果你想了解更多關(guān)于收集軟件需求和建模的原則,最好去學(xué)習(xí)?Domain Driven Development (DDD)。

什么時(shí)候測(cè)試,怎么測(cè)試?

在測(cè)試的時(shí)候,對(duì)于一些相對(duì)復(fù)雜的項(xiàng)目上面的內(nèi)容是非常有意義的,但對(duì)于一些比較 簡(jiǎn)單的項(xiàng)目就做的有些極端了。適用場(chǎng)景如下:

  • 項(xiàng)目已經(jīng)很大且復(fù)雜。
  • 項(xiàng)目需求開(kāi)始變得復(fù)雜起來(lái)。項(xiàng)目不斷發(fā)展。
  • 項(xiàng)目歷時(shí)很長(zhǎng)。
  • 失敗的代價(jià)非常高。

在現(xiàn)有的實(shí)現(xiàn)行為中進(jìn)行覆蓋測(cè)試是非常適合的。

  • 項(xiàng)目是一個(gè)逐步更新的遺產(chǎn)。
  • 你有一個(gè)還沒(méi)有經(jīng)過(guò)測(cè)試的項(xiàng)目要做。

在一些情況下,任何形式的自動(dòng)化測(cè)試都是過(guò)于極端的:

  • 項(xiàng)目很簡(jiǎn)單,也不會(huì)變得復(fù)雜。
  • 過(guò)期不再工作的一次性項(xiàng)目。

假如你有很多的時(shí)間,在這種情況下進(jìn)行自動(dòng)測(cè)試也很好。

深度閱讀

  • Test Driven Development: By Example / Kent Beck. ISBN: 0321146530.
Vorheriger Artikel: N?chster Artikel: