React Native:在Jest单元测试中模拟离线设备

时间:2018-10-03 18:24:12

标签: unit-testing react-native connection jestjs jest-fetch-mock

我正在编写React Native应用,并且正在使用Jest对我的代码进行单元测试。

我编写了一个函数,然后检查是否有互联网连接。我知道要编写它的单元测试。我被困住了,因为我无法弄清楚如何在单元测试中模拟设备的连接状态。

您如何在单元测试中模拟该设备是脱机还是在线?

编辑:

功能如下:

import { NetInfo } from "react-native";
import { NO_NETWORK_CONNECTION } from "../../../../config/constants/errors";

const checkNetwork = (): Promise<boolean | string> =>
  new Promise((resolve, reject) => {
    NetInfo.isConnected
      .fetch()
      .then(isConnected => (isConnected ? resolve(true) : reject(NO_NETWORK_CONNECTION)))
      .catch(() => reject(NO_NETWORK_CONNECTION));
  });

export default checkNetwork;

我想在测试中对其进行测试,以查看是否已正确连接到设备(如果已连接),如果请求失败,则使用字符串拒绝。为此,我需要在单元测试中模拟设备连接。

1 个答案:

答案 0 :(得分:3)

这非常简单,只需像这样模拟<div id="top_bar"> <p class="mob_phone"> <i class="icon-envelope-alt"></i> <a href="mailto:...">...</a> <!-- weird code starts here --> <meta charset="EUC-JP"> <title>404 File Not Found</title> <meta name="copyright" content="Copyright XSERVER Inc."> <meta name="robots" content="INDEX,FOLLOW"> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0"> <style type="text/css"> * { margin: 0; padding: 0; } ... </style> </p> ...

NetInfo