<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                #### 內容簡介 本書是一本完整的、基于最佳實踐的JavaScript敏捷測試指南,同時又有著測試驅動開發方法(TDD)所帶來的質量保證。領先一步的JavaScript敏捷開發者Christian Johansen的討論涵蓋了將最先進的自動化測試用于JavaScript開發環境的方方面面,帶領讀者走查整個開發的生命周期,從項目啟動到應用程序部署。本書的主要內容包括:掌握自動化測試和TDD;構建有效的自動化測試工作流;測試瀏覽器和服務器兩端的代碼(使用Node.js)、運用TDD構建更加干凈的API、更加模塊化的代碼以及更健壯的軟件;編寫可測試的代碼;使用測試樁和模擬對象,將各個單元單獨進行測試;通過重構持續進改代碼;走查全功能軟件的創建和自動化測試。 #### 前言 作者對于本書的觀點 近年來,JavaScript已經發展壯大。“DHTML”的崢嶸歲月已經一去不復返,我們現在身處的是“Ajax”、甚至是“HTML5”的時代。在過去的幾年里,JavaScript產生了一些殺手級應用;它也研發出了一些健壯的庫,以幫助開發者書寫跨瀏覽器腳本;它還有了一組工具,例如調試器、分析器,以及單元測試框架。整個社區不知疲倦地工作,將他們所知曉和喜歡的用于其他語言的工具帶入JavaScript,以為它準備一個“真實”的開發環境,在此環境中人們可以借鑒從其他環境中獲取的工作流和知識經驗,集中精力構建高質量的應用程序。 不過,JavaScript社區總體來說還不夠側重于自動化測試,測試驅動開發在JavaScript開發工程師中還比較罕見—即使他們已經工作在這么一種可能目標平臺最為寬泛的語言之上。在很長的一段時間里,這種現象可能是缺乏工具支持的結果,但是新的單元測試框架可謂層出不窮,它們為測試代碼提供了無窮無盡的方法,并且讓您感覺順手。即使如此,大多數的Web應用程序的開發人員仍然在測試其JavaScript代碼方面縮手縮腳。我難得遇到一位Web開發人員能夠具有某種程度的信心將他的應用程序的核心功能提取出來并加以重新安排,而這正是強力的測試套件賦予開發人員的能力。這種信息會減少開發人員對應用程序出錯的擔心,從而能夠更加放心地集中精力于實現新的功能。 本書將展示,JavaScript中的單元測試和測試驅動開發已經有了長足的進步。它將幫助您寫出更漂亮的代碼,并成為更具生產力的開發工程師。 ##### 本書內容 本書主要講述實踐中的JavaScript開發,采用了測試驅動開發所提倡的技術和工作流。它也講述了如何通過測試覆蓋率數據來增加您對代碼的信心,并獲得無所顧忌的重構和系統地開發代碼庫的能力。它還講述了如何編寫模塊化的、可測試的代碼,以及如何編寫在各式各樣的環境中運作,并且不會給您的用戶帶來麻煩的JavaScript。 本書的內容組織分為4個部分。 ##### 第一部分:測試驅動開發 第一部分將介紹自動化測試和測試驅動開發中的概念。我們將從審視單元測試是什么、它做了什么、有什么好處來入手。然后,我們將圍繞它們建立起自己的工作流,與此同時介紹測試驅動的開發流程。我將給您演示若干可用的JavaScript單元測試框架,討論它們的優點和缺點,最后更加仔細地研究那個我們將在全書范圍內使用的框架。 ##### 第二部分:開發人員的JavaScript 第二部分將更深入地研究JavaScript程序設計。這部分并非完整地介紹JavaScript語言。您應該已經有一些JavaScript的經驗(可能是用過諸如jQuery、Prototype這樣的庫)或者有一些其他編程語言的經驗。如果您是一名之前沒有JavaScript經驗的程序員,本部分有助于您理解JavaScript在哪些方面與其他語言不同,尤其是與其他在動態性方面略遜一籌的語言有何不同,并且給您打好必需的基礎,以使您能看懂在第三部分那些實踐中的例子。 如果您早已對閉包、原型繼承及其動態本質,以及特性檢測等高級JavaScript概念了如指掌,那么您可能僅僅想翻翻本部分的內容作為提醒,或者直接跳至第三部分。 在講述JavaScript的細節時,我將采用單元測試的手段來說明這門語言,并借此機會讓測試來驅動我們實現一些輔助函數,以備我們在第三部分中使用。 ##### 第三部分:JavaScript測試驅動開發實踐 這一部分將完成一系列處于不同環境中的小型項目。我們將學會如何開發一套小型的通用JavaScript API,如何開發一個依賴于DOM的小工具(Widget),如何將瀏覽器的差異抽象化,如何實現一個服務器端的JavaScript應用程序等—統統采用測試驅動開發。這部分著重講述測試驅動開發可以怎樣有助于構建更干凈的API、更模塊化的代碼,以及更健壯的軟件。 每一個項目都通過實現一段完整的功能、但有限的代碼引入了一些新的與測試相關的概念,并說明它們在實踐中的運用。在該部分中,除了其他事項外,我們還將學習如何測試依賴于瀏覽器API、定時器、事件處理器、DOM操作和異步服務器請求(即“Ajax”)的代碼。我們也將考察實踐中采用的技術,如存根、重構,以及運用設計模式來優雅地解決問題。 這一部分的各章將會提供如何擴展已開發功能的思路,并賦予您實踐的能力,以自己動手完成代碼的改進。擴充版本的解決方案都可以從本書的網站上下載。 我在這些項目中花費了大量的心血以保證編寫出可運行的代碼,并完成相應的工作。這個部分的5章所得出的最終結果是一套功能齊全的即時通信客戶端和服務器,未使用測試驅動開發之外的任何技術,未使用JavaScript之外的任何語言。 ##### 第四部分:測試模式 本書最后一部分以更寬泛的視角回顧了在整個第三部分所采用的一些技術。對測試替身,如模和樁,將進行更細致的考察,伴隨著講述多種形式的測試驗證技術。最后,我們將回過頭來重新審視一些指導原則,從而幫助您編寫良好的單元測試。 ##### 本書所采用的約定 JavaScript是Brendan Eich在1995年為網景公司(Netscape)設計的語言名稱。自那時以來,已經涌現出了多種替代性的實現,并且該語言已經由ECMA國際標準化為ECMA-262,又稱ECMAScript。盡管這些替代性的實現也各有名字,比如微軟的JScript,但它們一般都統稱為“JavaScript”,而我也正是在這樣的意義上使用JavaScript這個名字的。 全書范圍內,我們使用等寬字體來表示對象、函數以及小型代碼段。 ##### 本書讀者對象 本書面向的是程序設計人員,尤其是那些編寫或有興趣編寫JavaScript代碼的軟件開發人員。無論您是一位Ruby開發人員,主要關注Ruby on Rails;或者是一名Java或.NET開發人員,忙于構建Web應用;又或者是一名前端Web開發人員,以JavaScript、CSS和HTML為首要工具;甚至是一名后端開發人員,對JavaScript知之甚少,我都希望本書將對您有用。 本書旨在供那些需要更堅實地掌握或更精細地了解JavaScript語言的Web應用程序開發人員使用,也可供他們更好地理解如何提高他們的生產力和信心,并編寫出更具可維護性的、帶有更少缺陷的應用程序。 ##### 閱讀本書所要求的技能 本書不要求讀者以前有任何單元測試或測試驅動開發的知識。在整本書中都有自動化測試演示,通過閱讀本書可以讓您很好地掌握如何成功地運用它們。 同樣,讀者并不需要是JavaScript專家,或中等用戶。我希望本書對于那些只懂JavaScript皮毛的開發者,以及JavaScript高手能夠同等地有用。然而,您必須多少懂一些程序設計,這就是說,為了充分地享受本書,您應該有某種語言的程序設計經驗,并且熟悉Web應用程序的開發。本書并不是講述任何程序設計基礎的入門材料,連Web應用程序相關主題的程序設計基礎也沒有提及。 本書的第二部分重點在JavaScript語言,但僅僅著眼于使JavaScript卓爾不群的那些特質,這些內容并不適于當做是對該語言的完整介紹。我們期望您能夠通過例子中的用法,掌握這個部分中未專門講述的語法和概念。 特別要指出的是,第二部分側重于JavaScript函數和閉包、JavaScript對象模型,包括原型繼承,以及支持代碼復用的模式。此外,我們還將討論相關的程序設計實踐,比如不唐突的JavaScript,以及特性檢測,這兩個主題是Web開發人員都要掌握的。 ##### 關于本書的網站 本書附有一個網站,`http://tddjs.com`。訪問這個地址,您可以找到書中所有的代碼清單,既提供ZIP壓縮文件下載,也提供完整的Git資源庫,后者可以讓您瀏覽代碼的修訂歷史,以了解代碼是如何演變的。Git資源庫對于第三部分的樣例項目尤其有用,因為那里涉及大量的重構。通過瀏覽Git資源庫的修訂歷史,可以讓您看到每一步的變化,甚至包括他們何時會改動現有代碼。 您還可以通過`http://cjohansen.no`訪問我的個人網站,您會在那里發現更多的討論文章和聯系信息等。如果對本書有任何意見,我十分樂意聽取你們的反饋。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看