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

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

概述

測試

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

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

帶著測試進行開發(fā)

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

開發(fā)一個功能的過程如下:

  • 創(chuàng)建一個描述一個功能被實現(xiàn)測試。
  • 運行這個測試來確保功能失敗.因為這是沒有實現(xiàn)之前的預(yù)期。
  • 編寫簡單代碼確保這個測試通過。
  • 運行所有測試確保所有測試都通過。
  • 優(yōu)化代碼確保測試依然可以通過。

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

技巧: 如果你覺得你做一些很小很簡單的迭代是在浪費時間,請嘗試覆蓋更多的測試 場景,這樣你就可以在執(zhí)行測試之前做更多的嘗試。如果你的調(diào)試過多,試著做相反的工作。

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

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

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

在很長一段時間內(nèi),這通常會給你提供一個有效的時間節(jié)省。

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

什么時候測試,怎么測試?

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

  • 項目已經(jīng)很大且復(fù)雜。
  • 項目需求開始變得復(fù)雜起來。項目不斷發(fā)展。
  • 項目歷時很長。
  • 失敗的代價非常高。

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

  • 項目是一個逐步更新的遺產(chǎn)。
  • 你有一個還沒有經(jīng)過測試的項目要做。

在一些情況下,任何形式的自動化測試都是過于極端的:

  • 項目很簡單,也不會變得復(fù)雜。
  • 過期不再工作的一次性項目。

假如你有很多的時間,在這種情況下進行自動測試也很好。

深度閱讀

  • Test Driven Development: By Example / Kent Beck. ISBN: 0321146530.
上一篇: 下一篇: