国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【全棧React】第23天: 實(shí)現(xiàn)測(cè)試

airborne007 / 1885人閱讀

摘要:包包含由團(tuán)隊(duì)提供的測(cè)試實(shí)用程序。將在一個(gè)名為的目錄中自動(dòng)查找整個(gè)樹中的測(cè)試文件是的帶有下劃線。讓我們?yōu)闀r(shí)間軸組件創(chuàng)建第一個(gè)測(cè)試。其中之一是命令。現(xiàn)在我們已經(jīng)編寫了第一個(gè)測(cè)試并確認(rèn)了我們的設(shè)置我們將在明天開始測(cè)試我們的時(shí)間軸組件。

本文轉(zhuǎn)載自:眾成翻譯
譯者:iOSDevLog
鏈接:http://www.zcfy.cc/article/3807
原文:https://www.fullstackreact.com/30-days-of-react/day-23/

昨天我們檢查了我們?cè)赗eact中寫的不同類型的測(cè)試。今天我們親自動(dòng)手來看看結(jié)果。我們將安裝設(shè)置測(cè)試所需的依賴關(guān)系以及寫入我們的第一個(gè)斷言。

讓我們把我們的應(yīng)用設(shè)置起來進(jìn)行測(cè)試。因?yàn)槲覀儗⑹褂脦讉€(gè)不同的庫, 所以我們需要在使用它們之前安裝它們 (當(dāng)然)。

依賴關(guān)系

我們將使用下面的npm 庫:

jest/jest-cli

是 Facebook 發(fā)布的官方測(cè)試框架, 是測(cè)試React應(yīng)用的絕佳測(cè)試框架。它非常快, 提供沙盒測(cè)試環(huán)境, 支持快照測(cè)試, 等等。

babel-jest/babel-preset-stage-0

我們將使用階段 0 (或 ES6-edge 功能) 編寫測(cè)試, 因此我們希望確保我們的測(cè)試框架能夠讀取和處理我們的測(cè)試和源文件中的 ES6。

sinon

Sinon是一個(gè)測(cè)試實(shí)用程序庫, 它為我們提供了一種編寫間諜(spies)、存根(stubs)和 模擬(mock) 的方法。我們將在需要時(shí)討論這些內(nèi)容, 但現(xiàn)在我們將安裝該庫。

react-addons-test-utils/enzyme

react-addons-test-utils 包包含由React團(tuán)隊(duì)提供的測(cè)試實(shí)用程序。

Enzyme是由 Airbnb 構(gòu)建/維護(hù)的 更易于使用的JavaScript 測(cè)試庫,并且提供了遍歷/操縱響應(yīng)的虛擬 DOM 輸出的非常好的方法。當(dāng)我們開始使用react-addons-test-utils, 我們將過渡到使用Enzyme, 我們更喜歡在我們的測(cè)試中使用它。

react-test-renderer

react-test-renderer 庫允許我們使用jest庫中的快照功能。快照是一種Jest的方式, 可將呈現(xiàn)的輸出從虛擬 DOM 序列化為一個(gè)文件, 我們可以從一個(gè)測(cè)試自動(dòng)進(jìn)行比較。

redux-mock-store

redux-mock-store庫允許我們輕松地制作一個(gè)再現(xiàn)存儲(chǔ)進(jìn)行測(cè)試。我們將使用它來測(cè)試我們的動(dòng)作創(chuàng)創(chuàng)建者, 中間件, 和我們的歸并器。

To install all of these libraries, we"ll use the following npm command in the terminal while in the root directory of our projects:要安裝所有這些庫, 我們將在項(xiàng)目的根目錄中使用終端中的npm 命令:

yarn add --dev babel-jest babel-preset-stage-0 enzyme jest-cli react-addons-test-utils react-test-renderer redux-mock-store sinon
配置

我們還需要配置我們的安裝程序。首先, 讓我們添加一個(gè) npm 腳本, 它將允許我們使用npm test 命令運(yùn)行測(cè)試。在我們的項(xiàng)目根目錄的package.json 文件, 讓我們添加test 腳本。在package.json文件中查找腳本鍵, 然后添加test 命令, 如下所示:

{
  // ...
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "eject": "react-scripts eject",
    "test": "react-scripts test --env=jsdom"
  },
}
編寫測(cè)試

讓我們確認(rèn)我們的測(cè)試設(shè)置工作正常。Jest將在一個(gè)名為__tests__ 的目錄中自動(dòng)查找整個(gè)樹中的測(cè)試文件 (是的, 帶有下劃線)。讓我們?cè)谖覀兊?b>src/components/Timeline 目錄中創(chuàng)建我們的第一個(gè)__tests__ 目錄, 并創(chuàng)建我們的第一個(gè)測(cè)試文件:

mkdir src/components/Timeline/__tests__
touch src/components/Timeline/__tests__/Timeline-test.js

Timeline-test.js文件將包括我們的Timeline組件的所有測(cè)試 (如文件名所示)。讓我們?yōu)闀r(shí)間軸組件創(chuàng)建第一個(gè)測(cè)試。

我們將使用 Jasmine框架編寫測(cè)試。Jasmine提供了一些方法, 我們將使用相當(dāng)多的一些方法。以下兩種方法都接受兩個(gè)參數(shù), 第一種是描述字符串, 第二個(gè)是要執(zhí)行的函數(shù):

describe()

it()

describe() 函數(shù)為我們提供了一種將測(cè)試組合成邏輯包的方法。由于我們正在為我們的Timeline編寫一組測(cè)試, 我們將在測(cè)試中使用describe() 函數(shù)來指示我們正在測(cè)試時(shí)間軸。

src/components/Timeline/__tests__/Timeline-test.js文件中, 讓我們添加描述塊:

describe("Timeline", () => {

});

我們可以使用it() 函數(shù)添加第一個(gè)測(cè)試。it() 函數(shù)是我們將設(shè)定預(yù)期的位置。讓我們用我們的第一個(gè)期望, 一個(gè)通過和一個(gè)失敗來設(shè)置我們的測(cè)試, 這樣我們可以看到輸出的差異。

In the same file, let"s add two tests:在同一個(gè)文件中, 讓我們添加兩個(gè)測(cè)試:

describe("Timeline", () => {

  it("passing test", () => {
    expect(true).toBeTruthy();
  })

  it("failing test", () => {
    expect(false).toBeTruthy();
  })
})

我們將看看可能的期望, 我們可以設(shè)定在一個(gè)時(shí)刻。首先, 讓我們運(yùn)行我們的測(cè)試。

執(zhí)行測(cè)試

create-react-app 包 使用Jest自動(dòng)為我們建立了一個(gè)質(zhì)量測(cè)試環(huán)境,。我們可以使用yarn testnpm test腳本執(zhí)行測(cè)試。

在終端中, 讓我們執(zhí)行我們的測(cè)試:

yarn test

從這個(gè)輸出, 我們可以看到兩個(gè)測(cè)試, 一個(gè)通過測(cè)試 (帶有一個(gè)綠色的復(fù)選標(biāo)記) 和一個(gè)失敗的測(cè)試 (還有一個(gè)紅色的 x 和失敗的描述)。

讓我們更新第二個(gè)測(cè)試, 使它通過將期望更改為toBeFalsy():

describe("Timeline", () => {

  it("passing test", () => {
    expect(true).toBeTruthy();
  })

  it("failing test", () => {
    expect(false).toBeTruthy();
  })
})

重新運(yùn)行測(cè)試, 我們可以看到我們有兩個(gè)通過測(cè)試

`yarn test`

期望

在默認(rèn)情況下, Jest在測(cè)試中提供了一些全局命令 (即沒必要要求的內(nèi)容)。其中之一是expect() 命令。expect() 命令有幾個(gè)期望, 我們可以調(diào)用它, 包括我們已經(jīng)使用的兩個(gè):

toBeTruthy()

toBeFalsy()

toBe()

toEqual()

toBeDefined()

toBeCalled()

etc.

在以下的 jest頁面中可以獲得一整套期望:https://facebook.github.io/jest/docs/api.html#writing-assertions-with-expect.

expect() 函數(shù)采用單個(gè)參數(shù): 返回要測(cè)試的值函數(shù)的返回值。例如, 我們已經(jīng)寫好的兩個(gè)測(cè)試通過了truefalse的布爾值。

現(xiàn)在我們已經(jīng)編寫了第一個(gè)測(cè)試并確認(rèn)了我們的設(shè)置, 我們將在明天開始測(cè)試我們的時(shí)間軸組件。今天的工作很好, 明天見!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/87163.html

相關(guān)文章

  • 全棧ReactReact 30教程索引

    摘要:今天我們將討論創(chuàng)建組件的最終方案,即無狀態(tài)函數(shù)的純組件。今天我們正在研究一種處理提出的復(fù)雜數(shù)據(jù)的方法,稱為體系結(jié)構(gòu)。第天部署介紹今天,我們將探討部署我們的應(yīng)用所涉及的不同部分,以便外界可以使用我們的應(yīng)用。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3758原文:https://www.fullstackreact.com/3...

    appetizerio 評(píng)論0 收藏0
  • 全棧React24: 測(cè)試應(yīng)用

    摘要:我們的第一個(gè)假設(shè)是非常簡單的測(cè)試。我們正在測(cè)試以確保元素被包裝在類中。在我們編寫的每個(gè)測(cè)試中我們都需要將應(yīng)用呈現(xiàn)在工作測(cè)試文檔中。作為提醒我們可以使用命令或命令來運(yùn)行測(cè)試。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3804原文:https://www.fullstackreact.com/30-days-of-react/...

    ziwenxie 評(píng)論0 收藏0
  • 全棧React22: 測(cè)試簡介

    摘要:我們將討論三種不同的軟件測(cè)試范例單元測(cè)試功能測(cè)試和集成測(cè)試。在中單元測(cè)試通常不需要瀏覽器可以快速運(yùn)行不需要寫入斷言本身通常是簡單而簡潔的。集成測(cè)試最后我們將研究的最后一種測(cè)試是集成測(cè)試。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3809原文:https://www.fullstackreact.com/30-days-of...

    qc1iu 評(píng)論0 收藏0
  • 全棧React11: 純組件

    摘要:今天我們將討論創(chuàng)建組件的最終方案,即無狀態(tài)函數(shù)的純組件。為了獲得更多的性能和簡單性,同樣允許我們使用正常的函數(shù)創(chuàng)建純粹的,無狀態(tài)的組件。在中,功能組件被稱為一個(gè)參數(shù)的類似于構(gòu)造函數(shù)類,它們是它所調(diào)用的,以及組件樹的當(dāng)前。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3819原文:https://www.fullstackrea...

    Cciradih 評(píng)論0 收藏0
  • 全棧React29: 持續(xù)集成

    摘要:本文轉(zhuǎn)載自眾成翻譯譯者鏈接原文今天,我們將介紹一些可持續(xù)的集成解決方案,為我們提供運(yùn)行測(cè)試以及實(shí)施測(cè)試我們?cè)谠贫说膽?yīng)用。我們已經(jīng)啟動(dòng)了一個(gè)測(cè)試套件但是現(xiàn)在我們要確保它在部署之前完全通過。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3801原文:https://www.fullstackreact.com/30-days-of...

    xavier 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<