成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用Cypress測試React原生應用

譯文
開發 測試
開始使用Cypress。這樣我們就可以在Cypress中測試React Native Apps。此外,我們還可以設置Viewport并將其更改為不同的設備分辨率,以便測試移動Web應用程序。

Cypress 是一種現代化的測試自動化工具,因其易于安裝、具有對各種報告的內置支持以及編寫單元、API 和端到端測試的能力而廣受歡迎。

Cypress支持幾乎所有的現代架構開發框架,比如Angular、React Native、Vu,以及MVC框架等等。

本文將討論如何使用Cypress測試React Native應用程序。

什么是React Native應用程序?

React Native是一個基于JavaScript的開源框架,支持使用相同代碼庫在Android、iOS和Web應用等多個平臺上構建不同類型的應用程序。

React Native允許人們訪問本地視圖、API和組件。因此,開發將更快,更高效。

構建React應用程序

Expo框架幫助構建 React Native應用程序。它支持基于相同代碼庫構建的Android、iOS和Web應用程序。Expo在Github中列出了很多有用的例子。

使用Expo,你可以構建一個簡單的React原生應用:

1. 使用npm安裝expo: npm install expo

2. 使用命令創建原生應用: npx create-react-native-app –template

3. 使用參考:

  • 安裝 expo cli運行你的應用程序: npm i -g expo-cli
  • 進入app目錄,并輸入命令: npm run web
  • 在瀏覽器窗口中啟動應用程序,訪問地址: http://localhost:19006/
  • 如果你使用了一個空白的 React 項目模板,它應該如下圖所示,是一個簡單的頁面。

注意:端口可能會發生變化,運行命令后檢查控制臺的日志。

下面,我們使用一個空白的項目模板創建一個React應用程序,包含最基本的代碼。 App.js 是主要的源代碼,如下所示:

import { View, Text } from "react-native";
export default function App() {
  return (
    <View
      style={{
        flex: 1,
        justifyContent: "center",
        alignItems: "center",
      }}
    >
      <Text>Universal React with Expo</Text>
    </View>
  );
}

這樣做是為了在設備上設置 React 應用程序。

如何用Cypress執行React應用程序測試

Cypress教程提供了關于設置Cypress的詳細指南。

我們至少要做到以下幾點:

1. 安裝Cypress: npm install cypress

2. 打開Cypress 項目: npx cypress open

此時Cypress創建了目錄的所有基本結構。

參考例子:

Expo my-react-app 訪問地址是 http://localhost:19006/ ,所以我們需要訪問這個地址來測試我們的應用程序。

我們之前創建的expo應用程序只有一組文本: “Universal React with Expo”. 我們使用一個簡單的Cypress腳本來驗證。

在你的項目目錄中,創建 firsttest.js文件,并添加Cypress腳本來驗證:

describe('My First Test', () => {
    it('Verify Text', () => {
        cy.visit('http://localhost:19006/');
        cy.get("div[id='root']").should('have.text', 'Universal React with Expo');
    });
})

在上面的代碼中,我們正在訪問到我們的本地網站,并驗證文本是否存在。

使用React Native和Cypress驗證API調用

大多數React Native應用都在內部調用API接口,所以我們也可以用Cypress來驗證。

假設我們有一個React應用,它有一個API調用。

import React, { useEffect, useState } from 'react';
import { ActivityIndicator, FlatList, Text, View } from 'react-native';
export default function App() {
  const [isLoading, setLoading] = useState(true);
  const [data, setData] = useState([]);
  useEffect(() => {
    fetch('https://reqres.in/api/users?page=1')
      .then((response) => response.json())
      .then((json) => setData(json.data))
      .catch((error) => console.error(error))
      .finally(() => setLoading(false));
  }, []);

  return (
    <View style={{ flex: 1, padding: 24 }}>
      {isLoading ? <ActivityIndicator/> : (
        <FlatList
          accessibilityLabel="users"
          data={data}
          renderItem={({ item }) => (
            <Text testID="user" >{item.id}, {item.first_name}, {item.email}</Text>
          )}
        />
      )}
    </View>
  );
};

上面的代碼調用API https://reqres.in/api/users?page=1 返回一組JSON值。我們應該能夠斷言body和status等的內容。

在React Native應用中驗證API調用的Cypress腳本

describe('My First Test', () => {
    it('Verify API', () => {
        cy.intercept('*/users?*').as('users');
        cy.visit('http://localhost:19006/');
        cy.wait('@users').then(({response}) => {
            expect(response.statusCode).to.eq(200)
            expect(response.body.data.length).to.eq(6)
            expect(response.body.data[0].email).to.eq('george.bluth@reqres.in')
          })
   });
  })

在上面的代碼中,我們使用Cypress Intercept特性,等待API加載。然后我們從API中獲取響應,并在測試中驗證它:

這樣我們就可以在Cypress中測試React原生應用。此外,我們還可以設置Viewport并將其更改為不同的設備分辨率,以便測試移動Web應用程序。

原文標題:??Test React Native Apps With Cypress??,作者:Ganesh Hegde

責任編輯:華軒 來源: 51CTO
相關推薦

2023-04-09 15:08:20

Cypress組件測試

2022-07-13 08:00:00

軟件測試回歸測試Cypress

2022-05-15 22:08:58

ReactHookdebounce

2022-02-04 22:18:28

React路由應用

2022-12-22 08:01:09

Vue測試庫測試

2017-03-21 21:37:06

組件UI測試架構

2015-03-30 12:13:23

React NativiOS

2023-06-08 18:59:49

2022-02-21 09:00:00

云原生應用開發

2023-07-19 15:45:47

ReactDOM輕量級

2021-10-11 09:00:00

云原生Kubernetes安全

2023-12-26 10:04:29

Electron應用開發框架

2022-07-15 09:01:15

React對象編程

2017-12-10 14:13:14

云服務云原生應用程序

2022-08-22 16:23:11

React特性

2021-06-04 06:01:49

Yarn workspTypeScript云原生

2023-06-16 09:08:39

ReactContextRFC

2023-11-27 08:24:57

FormikReact

2016-10-31 11:26:13

ReactRedux前端應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品亚洲一区二区三区在线 | 成人毛片一区二区三区 | 99久久婷婷国产综合精品 | 91青青草视频 | 精品视频一区二区 | 超碰地址 | 欧美成人免费在线视频 | 国产精久久久久久 | 久久精品av | 亚洲最大的成人网 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | www国产亚洲精品久久网站 | 五月婷婷中文 | 日韩成人| 免费能直接在线观看黄的视频 | 久久综合伊人一区二区三 | 91免费入口 | 日韩色在线 | 天堂一区二区三区四区 | 亚洲一区二区在线播放 | 国产在线一区观看 | 日本涩涩网 | 成人h视频在线观看 | 99久久亚洲 | 欧美影院| 一区二区播放 | 久草青青 | 丝袜美腿av | 日韩成人一区 | 亚洲精品久久区二区三区蜜桃臀 | 亚洲人成人一区二区在线观看 | 亚洲欧美激情视频 | 亚洲精品一区二区网址 | 在线观看h视频 | 亚洲视频www| 免费观看黄a一级视频 | 国产精品视频一二三区 | 国产精品久久a | 亚洲一区二区三区视频 | 久久一及片 | 中文字幕一级毛片视频 |