摘要:我們將討論三種不同的軟件測試范例單元測試功能測試和集成測試。在中單元測試通常不需要瀏覽器可以快速運行不需要寫入斷言本身通常是簡單而簡潔的。集成測試最后我們將研究的最后一種測試是集成測試。
本文轉載自:眾成翻譯
譯者:iOSDevLog
鏈接:http://www.zcfy.cc/article/3809
原文:https://www.fullstackreact.com/30-days-of-react/day-22/
測試套件是一項前期投資,可在系統的整個生命周期內獲得回報。今天我們將介紹測試的主題,并討論我們可以寫的不同類型的測試。
好了, 閉上你的眼睛, 等一下, 不要... 你很難閉著眼睛閱讀, 但是想象一下, 你的應用正在接近你的第一個部署。
它越來越近, 它變得無聊, 不斷添加在您的瀏覽器運行的功能,。
一定還有更好的辦法..。
測試當我們談論測試時, 我們討論的是自動建立和測量我們的假設的過程, 而不是關于我們的應用的功能斷言。
當我們談論在React中的front-end(前后端) 測試時, 我們指的是對我們的Reac應用渲染什么以及它如何響應用戶交互的斷言過程。
我們將討論三種不同的軟件測試范例: 單元測試、功能測試和集成測試。
單元測試單元測試是指測試我們的代碼中的各個部分 (或單元, 因此是名稱), 這樣我們就可以確信這些特定的代碼部分能夠像我們期望的那樣工作。
例如, 我們的應用中已經有一些歸并器。這些歸并器由一個單一的函數組成, 我們可以在不同的場景下進行斷言。
在Reac中, 單元測試通常不需要瀏覽器, 可以快速運行 (不需要寫入 DOM), 斷言本身通常是簡單而簡潔的。
我們主要集中在回答這個問題: 用一組給定的輸入 (狀態和屬性), 輸出是否符合我們對虛擬 dom 中 應該 的期望。在這種情況下, 我們正在測試渲染輸出。
功能測試通過功能測試, 我們的重點是測試組件的行為。例如, 如果我們有一個帶有用戶登錄/注銷按鈕的導航欄, 我們可以測試我們的期望:
給定一個登錄的用戶, 導航呈現一個帶有文本 Logout 的按鈕
由于沒有登錄的用戶, 導航會呈現一個帶有文本 Login 的按鈕
功能測試通常是隔離運行的 (即測試組件功能而不需要應用的其余部分)。
集成測試最后, 我們將研究的最后一種測試是集成測試。這種類型的測試測試我們應用的整個服務, 并嘗試復制 end-user(終端用戶) 在使用我們的應用時的體驗。
在速度和效率的順序上, 集成測試非常緩慢, 因為它需要對實時運行的瀏覽器運行預期, 因為單元和功能測試的運行速度會更快 (尤其是在功能測試針對內存中的虛擬 dom 而不是實際的瀏覽器呈現的情況下進行測試時)。
當測試響應組件時, 我們將測試我們對虛擬 dom 中包含的內容的期望, 以及實際 dom 中反映的內容。
工具我們將使用一個名為 jasmine 的測試庫來提供可讀的測試語言和斷言。
至于測試運行, 有一個一般性的辯論圍繞哪一個測試亞軍是最容易/最有效的工作, 主要在mocha 和 jest。
我們要在React中使用在我們的冒險測試Jest, 因為它是 官方 (將信將疑) 測試員。我們將要寫的大部分代碼將是在Jasmine。可以隨意使用mocha 如果它是你的測試庫的選擇。
最后, 我們將使用一個我們不能離開的庫:Enzyme, 這使得在功能測試的更有樂趣。Enzyme提供了一些相當不錯的Reac測試實用功能, 使我們的斷言寫得很容易。
明天, 我們將得到我們的應用設置與測試工具就位, 以便我們可以開始測試我們的應用, 并有信心它的工作是按我們預期的。明天見!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87164.html
摘要:今天我們將討論創建組件的最終方案,即無狀態函數的純組件。今天我們正在研究一種處理提出的復雜數據的方法,稱為體系結構。第天部署介紹今天,我們將探討部署我們的應用所涉及的不同部分,以便外界可以使用我們的應用。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3758原文:https://www.fullstackreact.com/3...
摘要:在方法中處理數據有三不同的角色派發器儲存視圖層我們的組件的主要思想是有一個單一源儲存他們只能通過觸發更新。這些操作負責調用派發器可以訂閱更改并相應地更新自己的數據。與不同不使用派發器而是使用純函數來定義數據變異函數。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3812原文:https://www.fullstackreact...
摘要:使用承諾對象使我們有機會將異步操作的最終成功或失敗關聯到功能無論出于何種原因。例如在上面的示例中函數解析為值在成功完成時并在返回值這是另一個承諾上調用函數依此類推等等。這意味著我們只能返回一個承諾一次。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3814原文:https://www.fullstackreact.com/30...
摘要:我們的第一個假設是非常簡單的測試。我們正在測試以確保元素被包裝在類中。在我們編寫的每個測試中我們都需要將應用呈現在工作測試文檔中。作為提醒我們可以使用命令或命令來運行測試。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3804原文:https://www.fullstackreact.com/30-days-of-react/...
摘要:包包含由團隊提供的測試實用程序。將在一個名為的目錄中自動查找整個樹中的測試文件是的帶有下劃線。讓我們為時間軸組件創建第一個測試。其中之一是命令。現在我們已經編寫了第一個測試并確認了我們的設置我們將在明天開始測試我們的時間軸組件。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3807原文:https://www.fullstac...
閱讀 2168·2021-11-24 09:39
閱讀 2781·2021-07-29 13:49
閱讀 2322·2019-08-29 14:15
閱讀 2233·2019-08-29 12:40
閱讀 3312·2019-08-26 13:42
閱讀 632·2019-08-26 12:13
閱讀 2065·2019-08-26 11:41
閱讀 3345·2019-08-23 18:32