Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用酶测试反应响应组件?

如何使用酶测试反应响应组件?
EN

Stack Overflow用户
提问于 2016-08-25 13:08:49
回答 4查看 8.2K关注 0票数 14

我使用的是React-Reponsive库。https://github.com/contra/react-responsive

我正在努力找出如何测试嵌套在React-Responsive Media Query组件中的组件:

代码语言:javascript
运行
AI代码解释
复制
export default class AppContainer extends React.Component {
  render(){
    return(
      <MediaQuery minDeviceWidth={750}>
         <Header />
      </MediaQuery>
    );
  }
}

-

代码语言:javascript
运行
AI代码解释
复制
describe("AppContainer", () => {
  let App;
  let wrapper;
  beforeEach(() => {
    wrapper = mount(<Provider store={store}><AppContainer location={location} /></Provider>);
    App = wrapper.find(AppContainer);

  });
  it('to have a <Header /> component', () => { 
    console.log(App.debug());
    expect(App.find(Header)).to.have.length(1);
  });
}

测试结果:

代码语言:javascript
运行
AI代码解释
复制
1) AppContainer to have a <Header /> component:
AssertionError: expected { Object (component, root, ...) } to have a length of 1 but got 0

console.log输出的相关部分为:

代码语言:javascript
运行
AI代码解释
复制
<MediaQuery minDeviceWidth={750} values={{...}} />

指示标题确实没有出现在呈现树中。但是,如果我删除MediaQuery并将Header设置为AppContainer的直接子级,测试就会通过。

我想这不是一个bug,因为我对一般的酶和测试组件是非常陌生的。任何帮助或例子都将不胜感激。

请注意:我在这个组件上的其他测试都通过得很好。我确信导入和设置都是正确的。

EN

回答 4

Stack Overflow用户

发布于 2016-08-26 01:58:22

问题是媒体查询正在寻找未定义的带有jsdom的window.matchMedia。

在这种情况下,我需要使用服务器端渲染实现。然而,这将需要一个静态的宽度值,这会破坏响应性。

我的解决方案是在测试虚拟DOM上设置一个全局变量。

代码语言:javascript
运行
AI代码解释
复制
window.testMediaQueryValues = {width:740};

如果它们在那里,那么MediaQuery就可以访问它们:

代码语言:javascript
运行
AI代码解释
复制
<MediaQuery maxWidth={smallViewMaxWidth} values={window.testMediaQueryValues}>

在未设置变量的情况下,将忽略空值,组件照常呈现。

非常感谢@Contra的帮助和超级库

票数 5
EN

Stack Overflow用户

发布于 2018-08-15 18:25:35

对我来说起作用的是使用__mocks__目录添加一个模拟的react-responsive组件。基本上在目录结构中创建如下文件:

-your-component

--component-using-media-query.js

--__mocks__

-react-responsive.js

然后,您可以模拟react-responsive.js文件中的MediaQuery组件。

代码语言:javascript
运行
AI代码解释
复制
const MediaQuery = ({ children }) => children;

export default MediaQuery; 
票数 4
EN

Stack Overflow用户

发布于 2019-08-05 16:42:55

我能够使用react-responsive v7.0.0使其工作。

给定:

代码语言:javascript
运行
AI代码解释
复制
<MediaQuery minDeviceWidth={750}>
  <Header />
</MediaQuery>

以下是工作原理:

代码语言:javascript
运行
AI代码解释
复制
import { Context as ResponsiveContext } from 'react-responsive'
import { mount } from 'enzyme'

const wrappingComponent = ResponsiveContext.Provider
const wrappingComponentProps = { value: { width: 750 } }
const mountProps = { wrappingComponent, wrappingComponentProps }

const wrapper = mount(<AppContainer />, mountProps)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39146252

复制
相关文章
生化小课 | 酶促进了化学反应通路
所有生物大分子的热力学稳定性远低于其单体亚基,但它们在动力学上是稳定的:它们的非催化分解发生得很慢(几年而不是几秒钟),以至于在对生物体至关重要的时间尺度上,这些分子是稳定的。事实上,细胞中的每一个化学反应都以很快的速度发生,这仅仅是因为酶(enzymes)的存在——生物催化剂,与所有其他催化剂一样,极大地提高了特定化学反应的速度,而不会在过程中被消耗。
尐尐呅
2022/09/04
1.1K0
生化小课 | 酶促进了化学反应通路
刘扬中/吴宇恩Angew:刺激响应型锰单原子纳米酶可通过整合级联反应以治疗肿瘤
单原子酶(SAE)是一种新型、具有高效催化活性的纳米酶。近年来,研究表明SAE可通过改变细胞内的氧化还原平衡而用于肿瘤治。中科大刘扬中教授和吴宇恩教授通过在中空ZIF中将单原子锰与氮原子进行配位,构建了聚乙二醇化的锰基SAE(Mn/PSAE)。
JoJo_Beatles
2021/03/11
1.4K0
刘扬中/吴宇恩Angew:刺激响应型锰单原子纳米酶可通过整合级联反应以治疗肿瘤
[TDD] 如何测试 React 异步组件?
本文承接上文 如何测试驱动开发 React 组件?,这次我将继续使用 @testing-library/react 来测试我们的 React 应用,并简要简要说明如何测试异步组件。
狂奔滴小马
2021/12/31
3.4K0
[TDD] 如何测试 React 异步组件?
如何测试Android组件化
1、Android组件化概念 组件化大致可分为功能组件化和业务组件化。功能组件化,常见的是将一些底层的公共功能模块进行独立化,如网络请求模块、登录注册模块等。业务组件化,即为业务模块独立化,彼此无关联,由一个项目工程拆分成若干个业务模块,由App主工程提供统一的入口,每个业务独立的模块共享项目的依赖库。
用户5521279
2019/06/01
1.5K0
使用httpstat测试网站响应时间
httpstat是用Python写的脚本,可以用来测试http服务器的回应速度。 httpstat本质上就是封装了cURL工具,所以它可以接受各种 cURL的选项。(-w、-D、-o、-s与-S除外,因为这些已经被 httpstat使用了)
Python疯子
2018/09/06
1.5K0
使用httpstat测试网站响应时间
JCIM|EHreact:用于酶促反应模板提取和评分的扩展Hasse图
2021年9月29日,JCIM上发表了有关酶促反应模板提取和评分的文章:"EHreact: Extended Hasse Diagrams for the Extraction and Scoring of Enzymatic Reaction Templates"。
智药邦
2022/03/04
9220
JCIM|EHreact:用于酶促反应模板提取和评分的扩展Hasse图
如何测试驱动开发 React 组件?
TDD(Test-driven development),就是测试驱动开发,是敏捷开发中的一项核心实践和技术,也是一种软件设计方法论。
狂奔滴小马
2022/03/29
2.2K0
如何测试驱动开发 React 组件?
如何测试驱动开发 React 组件?
TDD(Test-driven development),就是测试驱动开发,是敏捷开发中的一项核心实践和技术,也是一种软件设计方法论。
狂奔滴小马
2021/12/01
2.2K0
如何测试驱动开发 React 组件?
如何使用wireshark分析ping响应延迟?
ping日常会用作检测网络响应延迟的手段,客户端发送icmp echo request包,服务端收到之后发送icmp echo reply,通过计算reply和request的时间差,就可以得到ping延迟。
curu
2021/05/13
8.1K2
如何使用wireshark分析ping响应延迟?
使用Enzyme测试React(Native)组件|洞见
组件化与UI测试 在组件化出现之前,我们不谈UI的单元测试,哪怕是对于UI页面进行测试都是一件非常困难的事情。其实组件化并不完全是为了复用,很多情况下也恰恰是为了分治,使得我们可以分组件对UI页面进行
ThoughtWorks
2018/04/17
2.4K0
使用Enzyme测试React(Native)组件|洞见
如何使用Vue封装组件[通俗易懂]
想封装组件呢首先要思考: 1.你想向用户暴露哪些属性 (props) 2.你想向用户暴露哪些事件,让用户监听来处理后续的业务 ($emit,@) 3.你想让用户嵌入哪些自定义的内容(slot)
全栈程序员站长
2022/11/09
1.7K0
隧道代理如何测试访问网站的响应时间?
当我们要购买了HTTP代理,千挑万选以后决定从中挑选几家来测试,今天我们就来说说,如何测试HTTP代理访问网站的响应时间,有的厂商宣称响应时间只要10ms:
阿秋数据采集
2023/02/16
9740
事件响应的优先级、stopProgapation禁止下层组件响应
cocos2d-js没有完整的鼠标事件处理,这点比js/flash的要差一些,不过凑合着也可以用了。 一般界面编程,可以用显示列表的Node作为监听器的优先级,在上方的会比下方的高优先级。 而cocos2d-js没有stopImmediatePropagation,只有stopProgapation,一旦某个监听器中执行了stopProgapation,后续的监听器都不会被执行。这里并没有js/flash的冒泡概念。 如果在上层Node中stopProgapation,那么效果就有点像设置了swallowT
用户1258909
2018/07/03
7430
React 组件如何写单元测试?
那如果这个组件交给别人维护了,他并不知道这个组件的功能应该是什么样的,怎么保证他改动代码之后,组件功能依然正常?
神说要有光zxg
2023/08/28
6820
React 组件如何写单元测试?
如何使用Java处理HTTP请求和响应?
Java中有许多成熟的HTTP框架可以使用,例如Spring、Netty等。这些框架提供了各种HTTP处理器和工具类,使得HTTP请求和响应处理变得更加容易和高效。下面是一个简单的Java代码示例,演示如何使用Java处理HTTP请求和响应:
用户1289394
2023/08/22
7330
如何使用Java处理HTTP请求和响应?
试试使用 Vitest 进行组件测试,确实很香。
自从 尤大 的构建工具Vite获得了巨大的人气,现在有了一个由它驱动的极快的单元测试框架。Vitest。
前端小智@大迁世界
2022/09/21
2.4K0
试试使用 Vitest 进行组件测试,确实很香。
如何使用小程序表单组件
上一篇文章中,我们给大家介绍了小程序的视图容器及基础内容组件,该组件主要应用是输出内容。接下来这篇文章中,我们将继续介绍小程序最常用的表单组件,该组件主要应用是获取输入内容。表单组件分为11个组件,我们将对这11个组件使用做详细的介绍。
此昵称已隐藏_
2018/11/06
5.3K0
VueJs中如何使用Teleport组件
在DOM结构相对比较复杂,层级嵌套比较深的组件内,需要根据相对应的模块业务处理一些逻辑,该逻辑属于当前组件
itclanCoder
2023/02/26
2.4K0
VueJs中如何使用Teleport组件
如何使用小程序媒体组件
图片,视频,音乐是小程序使用中不可缺少的部分,这篇文章中,我们将介绍小程序媒体组件的使用。媒体组件分为audio音频组件,image图像组件,video视频组件,camera相机组件以及live-player、live-pusher小程序直播组件。其中直播权限需要相关资质的账号才能开通,本文暂不做介绍。其他组件我们将会以Hello World的demo形式做介绍。
a563831029
2018/11/07
4.9K0
如何使用小程序媒体组件
DjangoRestFramework,认证组件、权限组件、频率组件、url注册器、响应器、分页组件
    我们知道,我们不管路由怎么写的,对应的视图类怎么写的,都会走到dispatch方法,进行分发,
changxin7
2019/12/20
6100
DjangoRestFramework,认证组件、权限组件、频率组件、url注册器、响应器、分页组件

相似问题

使用酶测试嵌套反应组件

02

反应组件测试。摩卡酶测试。错误

15

反应测试:带酶道具的类组件

11

使用酶法异步安装后测试反应性子组件

11

使用jest/酶进行反应测试的控制器组件

110
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档