首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嘲笑Reactotron的笑话

嘲笑Reactotron的笑话
EN

Stack Overflow用户
提问于 2019-03-07 15:48:56
回答 1查看 1.2K关注 0票数 3

我已经用几乎默认的配置设置了Reactotron:

代码语言:javascript
复制
import Reactotron from 'reactotron-react-native';
import { reactotronRedux } from 'reactotron-redux';

const reactotron = Reactotron
  .configure()
  .useReactNative()
  .use(reactotronRedux())
  .connect();

export default reactotron;

并导入到‘index.js’中:

代码语言:javascript
复制
if (__DEV__) { import('./app/utils/reactotron'); }

但在此之后,大多数Jest测试都会失败,并出现下一个错误:

代码语言:javascript
复制
ReferenceError: WebSocket is not defined

   8 |   .useReactNative()
   9 |   .use(reactotronRedux())
> 10 |   .connect();
     | ^
  11 | 
  12 | export default reactotron;

  at createSocket (node_modules/reactotron-react-native/dist/index.js:1:13571)
  at a.value (node_modules/reactotron-core-client/dist/index.js:1:8397)
  at Object.<anonymous> (app/utils/reactotron.js:10:1)

看起来我需要将WebSocket或其他东西添加到全局变量中进行测试,但我是否应该对所有测试都这样做,或者有什么方法可以对所有测试都这样做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-14 18:39:55

对于这种情况,我们似乎需要模拟reactotron-react-native包。因此,要解决这个问题,只需在根文件夹中放置一个__mocks__文件夹,并在其中添加与包同名的文件。因此,在本例中,它将是“reactotron-react-native.js”。这个文件应该模拟包中的所有函数。对我来说帮助了下一个:

代码语言:javascript
复制
const reactotron = {
  configure: () => reactotron,
  useReactNative: () => reactotron,
  use: () => reactotron,
  connect: () => reactotron,
};

module.exports = reactotron;

在这种情况下,它允许链接函数,因此可以更改测试中的调用顺序。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55038575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档