Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用Jest +酶导入反应元件中的模拟节点模块

用Jest +酶导入反应元件中的模拟节点模块
EN

Stack Overflow用户
提问于 2018-11-06 07:40:23
回答 1查看 2.1K关注 0票数 2

我正在尝试用Jest和酶法测试一个反应组件,但是我的测试失败了,因为它似乎遇到了特定节点模块的问题。破坏测试的模块实际上是从我试图测试的组件中导入的。

这里是层次结构:

  • 洞见
    • BuildOnScrollHelper (这是导入节点模块的地方)。

当我运行这个测试时,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';
import { shallow } from 'enzyme';
import { View } from 'react-native';
import { Insights } from '../../containers/Insights';
import insightsMockData from '../../mocks/data/insights';

describe('Insights Container', () => {
  let cmp;

  beforeEach(() => {
    cmp = shallow(
      <Insights
        {...insightsMockData}
        loadReports={jest.fn()}
        fetchGraph={jest.fn()}
      />,
    );
  });

  it('does stuff', () => {
    console.log(cmp.debug());
  });
});

我从控制台的Jest获得了这个错误:

如果我进入我的BuildOnScrollHelper Insight React组件并注释掉该组件(及其导入语句),那么测试运行的非常好。

我有两个想法:

  1. 我甚至不需要模拟节点模块,也许我可以直接模拟BuildOnScrollHelper本身?对于这个测试,我根本不关心BuildOnScrollHelpers的功能。
  2. 我将不得不模拟节点模块。

有谁知道我会以一种被认为是良好实践的方式来做这件事吗?我花了几个小时试图找出解决这个问题的方法,但仍然无法让我的测试开始工作。

理想情况下,我希望得到一个提供一些代码示例的答案,而不仅仅是一个指向文档的链接。

EN

回答 1

Stack Overflow用户

发布于 2018-11-07 02:48:39

看看这个链接

模拟节点模块 如果您要模拟的模块是节点模块(例如:送交),则应将模拟放在与目录相邻的node_modules中(除非您将根配置为指向项目根以外的文件夹),并将自动进行模拟。没有必要显式地调用jest.mock('module_name')。 可以通过在目录结构中创建与作用域模块的名称匹配的文件来模拟作用域模块。例如,要模拟一个名为@scope/project-name的作用域模块,在mocks/@scope/project-name.js,中创建一个相应创建@scope/目录的文件。

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

https://stackoverflow.com/questions/53175174

复制
相关文章
Python 导入模块中的类
在看代码时发现Python的导入类也可以用“.”的方式,很是惊奇,记录下来: 如以下代码:其所在文件(模块)为test.py
用户7886150
2020/12/24
2.3K0
生化小课 | 酶促进了化学反应通路
所有生物大分子的热力学稳定性远低于其单体亚基,但它们在动力学上是稳定的:它们的非催化分解发生得很慢(几年而不是几秒钟),以至于在对生物体至关重要的时间尺度上,这些分子是稳定的。事实上,细胞中的每一个化学反应都以很快的速度发生,这仅仅是因为酶(enzymes)的存在——生物催化剂,与所有其他催化剂一样,极大地提高了特定化学反应的速度,而不会在过程中被消耗。
尐尐呅
2022/09/04
1.1K0
生化小课 | 酶促进了化学反应通路
【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )
该方法用于 导入完整的模块 , 包括模块中的 函数 / 变量 / 类 / 代码块 等 ;
韩曙亮
2023/10/11
2500
【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )
【Python】模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入的模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )
在导入模块时 , 有时不需要使用模块的完整功能 , 只需要导入指定的部分功能即可 , 这样也符合最少知识设计原则 ;
韩曙亮
2023/10/11
3190
【Python】模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入的模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )
python中关于模块导入的模式
举例:只想导入time模块中的ctime、time两个方法,可以按照以下的格式导入:
Java学术趴
2022/07/15
1.6K0
python中关于模块导入的模式
模块的导入
假设有两个模块xmlreader.py和csvreader.py,它们都定义了函数read_data(filename):用来从文件中读取一些数据,但采用不同的输入格式。可以编写代码来选择性地挑选读取模块,例如
py3study
2020/01/21
1K0
【Python】模块导入 ① ( Python 模块简介 | 模块概念 | 模块作用 | 模块特点 | 常见的 Python 模块 | Python 模块导入 | Python 模块导入语法 )
Python 模块 就是一个以 .py 为后缀的 Python 代码文件 , 在模块中定义有 :
韩曙亮
2023/10/11
2660
用 Jest 进行 JavaScript 测试[每日前端夜话0xB6]
在技术术语中测试意味着检查我们的代码是否符合某些预期。例如:给定一些输入,一个名为“transformer”的函数应返回预期的输出。
疯狂的技术宅
2019/09/04
2.8K0
用 Jest 进行 JavaScript 测试[每日前端夜话0xB6]
Python3 导入上级目录中的模块
首先 sys.path 的作用是:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块
py3study
2020/01/13
3.3K0
DOM 节点的克隆和导入
在使用 JS 操作 DOM 节点的时候,我们常常会用到克隆(或导入)节点的操作,那到底有哪些方法可以实现节点克隆(或导入)的效果呢?
编程三昧
2022/02/19
1K0
DOM 节点的克隆和导入
JCIM|EHreact:用于酶促反应模板提取和评分的扩展Hasse图
2021年9月29日,JCIM上发表了有关酶促反应模板提取和评分的文章:"EHreact: Extended Hasse Diagrams for the Extraction and Scoring of Enzymatic Reaction Templates"。
智药邦
2022/03/04
9110
JCIM|EHreact:用于酶促反应模板提取和评分的扩展Hasse图
Jest中Mock网络请求
最近需要将一个比较老的库修改为TS并进行单元测试,修改为TS还能会一点,单元测试纯粹是现学现卖了,初学Jest框架,觉得在单元测试中比较麻烦的就是测试网络请求,所以记录一下Mock掉Axios发起网络请求的一些方式。初学两天的小白,如有问题还请指出。
WindRunnerMax
2021/09/15
3.4K0
Python import导入模块 - reload() 导入的内容
模块被导入后,import module不能重新导入模块,重新导入需用reload
Devops海洋的渔夫
2019/06/02
3.1K0
分子生物学研究用什么软件?SnapGene软件下载安装,功能介绍
SnapGene是一款广泛应用于分子生物学研究的软件工具,能够帮助科学家高效地进行DNA序列设计、模拟和分析。除了基本的DNA序列编辑功能外,SnapGene还具有许多其他的独特功能,下面将介绍几个典型的例子。
优木软件
2023/05/05
9040
python模块导入
[seemmo@RegionServer1 duwen]$ python Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
py3study
2020/01/14
1.5K0
Python导入模块的方法
Python导入模块的方法有两种:import module 和 from module import a,区别是前者所有导入的东西使用时需加上模块名的限定(module.a),而后者不需要。
py3study
2020/01/17
1.6K0
Python 导入模块
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 导入模块 更多内容请见👇 Python 入门基础专栏 Python 字符串 Python 常用字符串方法 ---- Python 导入模块 1.import 模块名 2.import 模块名 as 名称缩写 3.import 模块名.子模块名 as 名称缩写 4.from 模块名 import 函
小嗷犬
2022/11/15
1.3K0
【Python模块】- 如何导入和使用模块?模块导入方式有哪些?
首先先准备两个模块,md_01_测试模块1和 md_02_测试模块2,然后在demo文件中导入模块并使用工具。
python自学网
2022/10/05
3.3K0
【Python模块】- 如何导入和使用模块?模块导入方式有哪些?
Spring注解@Import实现多模块中Bean的导入
很多时候我们的Spring项目使用多模块,或者我们需要将自己特定的类库打成依赖。默认情况下Spring Boot应用只会扫描main方法所在的包路径下的Bean和通过spring.factories进行注册发现自动装配到Spring IoC中去。像下面这个Maven项目中,如果Spring Boot的Main类在cn.felord.yaml包下的话cn.felord.common包的Spring Bean是无法被扫描注册到Spring IoC容器中的。
码农小胖哥
2020/07/14
2.3K0
用Python中的tkinter模块作图
tkinter 可以用来创建完整的应用程序,比如简单的字处理软件,还有简单的绘图软件。 一、创建一个可以点的按钮 用tkinter创建一个带按钮的简单程序,代码如下: >>> from tkinter import* >>> tk = Tk() >>> btn = Button(tk,text = "click me") >>> btn.pack() 在第一行上,我们引入了 tkinter 模块的内容。用 from 模块名 import* 就可以在不用模块名字的情况下使用模块的内容了。 下面是我们创建的按钮
Zoctopus
2018/06/04
6K5

相似问题

用动态导入测试反应元件(酶/摩卡)

25

如何利用Jest和酶模拟反应本机开关元件的压力

10

如何在Jest/酶中模拟反应环境?

16

带有jest/酶的模拟模块功能

10

Jest和酶的单元测试反应元件函数

18
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文