问题标签 [reactjs-testutils]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - 我得到 TypeError: Cannot read property 'then' of undefined 当我尝试测试异步操作时
我在 reactjs 中测试我的异步操作时遇到问题。这是我的代码:
所以我的 asnc 调用在一个未导出的函数中,并且有一个函数在 for 循环中调用这个 asnc 函数。
现在这是我的测试:
现在的问题是运行测试时我得到:
知道如何解决这个问题吗?
reactjs - 模拟在另一个函数中使用的函数
我正在为 react redux 中的异步操作编写测试,为了解决我在此处简化代码的问题。这是我的动作功能:
所以问题是函数 getLoginStatusUrl() 会在 cookie 中进行几次检查并根据某些条件返回适当的 url。所以我想要模拟这个函数以返回例如 test.com 然后我可以测试我的操作如下:
在这种情况下,如何模拟 getLoginStatusUrl() 以返回 test.com?
jquery - 将 react 的 testutils 与 jquery 元素一起使用
我正在尝试测试反应页面。使用.trigger("input", {which: 65})
似乎不会调用 SyntheticEvent。所以我想知道是否有可能以某种方式将 jQuery 和.simulate
testUtils 结合起来?
基本上,我正在尝试做类似的事情
reactjs - ReactTestUtils Simulate.Change 参数类型 SyntheticEventData 错误
下面的代码是用 typescript 编写的,它使用“react-dom/test-utils”中的 ReactTestUtils。
它工作正常,当我放置该as any
铸件时,结果与预期一致。如果我删除铸件,则会发生此错误:
[ts] 类型参数 '{ target: { value: string; }; }' 不可分配给“SyntheticEventData”类型的参数。属性“目标”的类型不兼容。输入'{值:字符串;}' 不可分配给类型 'EventTarget'。对象字面量只能指定已知属性,而“值”不存在于“EventTarget”类型中。
这是Simulate.change
我从中得到的智能感知@types/react-dom (version: ^15.5.4)
:
在SyntheticEventData
接口的声明中,我发现target
属性的类型是JavascriptEventTarget
:
由于代码在我进行as any
强制转换时按预期工作,所以我不太明白这个EventTarget
界面是如何工作的。
各位大佬知道去除掉色块的方法as any
吗?因为如果可能的话,我想尽量减少any
代码中的任何内容。我想让代码强类型。
reactjs - 为测试目的翻译 dom in react
大家好,我有一个问题想问任何可以提供帮助的人。是否有任何辅助函数可以将 document.body 转换为 React 结构并像 getElementBy.. 一样访问它?所以我可以通过 React Names 而不是 classNames 或 TagNames 访问各个组件?
已经实现的代码示例如下所示:
我使用 document.body.getEmentsByTagName 是因为该组件在已安装组件之外呈现。
reactjs - React test-utils scryRenderedDOMComponentsWith* 不遍历嵌套组件
测试组件有问题。我有一个Voting
渲染组件的Vote
组件,该Vote
组件渲染两个<button>
标签。使用 mocha+chai 和 react-dom/test-utils 库,渲染到 jsdom,我想测试两个按钮是否被渲染。当我调用 时scryRenderedDOMComponentsWithTag(component, 'button')
,传入子 Vote 组件,它返回一个带有两个按钮的集合,但如果我传递父组件(见下文),它返回空。我玩过其他scryRenderedDOMComponentsWith*
方法和相同的结果。浏览器中的视觉检查显示按钮肯定正在呈现。scryRenderedDOMComponentsWith*
函数不会向下遍历到componentTree
arg的子代吗?还是我做错了什么?
投票.js
投票.js
投票.spec.js
测试输出
仅供参考,这是基于全栈 Redux 教程(http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html),我一直在按照需要进行更改以使用当前的 API、模式和库。我已删除逻辑以简化此处的代码。在教程示例中,父投票组件通过renderIntoDocument
. scryRenderedDOMComponentsWithTag
在示例测试中将父Voting
组件作为其componentTree
arg,并找到由子组件呈现的按钮Vote
- 所以我期望它在探查时应该遍历嵌套组件。
reactjs-testutils - 使用酶的 React 组件的单元测试用例
我正在研究 reactjs 5.X 版本。我正在用酶写 UT。下面是我的带有 prop 参数的可重用组件。无法在 const 组件中找到 div 标签。您能帮我如何使用类名获取 div 标签或使用 find 函数获取 div 标签。
reactjs - reactjs / jest:无法使用 MockedProvider 用数据填充 react-apollo 组件?
我编写了简单的 react-apollo 组件,它使用 graphql 查询从模式中检索数据。在执行组件上工作正常,但是,当我使用 jest 框架和 MockedProvider(即 react-apollo/test-utils 的组件)为这个组件编写测试用例时。我无法用数据填充组件。我曾在 MockedProvider 上引用过这篇文章:https ://paradite.com/2017/11/16/test-react-apollo-components-enzyme-examples/
我的组件和测试脚本如下:
//MyComponent.test.js
reactjs - 如何使用 Karma 和 React 16.2.0 修复此错误?
我有这个 Karma 配置(使用 React 16.2.0):
我收到以下控制台错误:
{ "message": "Uncaught ReferenceError: addons is not defined\nat test/allTests.js:81672:8\n\nReferenceError: addons is not defined\n
at Object.defineProperty.value (test/allTests.js:84455: 18)\n 在 webpack_require (test/allTests.js:20:30)\n 在 test/allTests.js:81668:20\n 在 Object.defineProperty.value (test/allTests.js:81732:6)\n在webpack_require (test/allTests.js:20:30)\n 在 Object. (test/allTests.js:79742:21)\n 在 Object. (test/allTests.js:80112:31)\n 在webpack_require ( test/allTests.js:20:30)\n 在 Object. (test/allTests.js:77771:15)\n 在webpack_require (test/allTests.js:20:30)", "str": "Uncaught ReferenceError: addons is not defined\nat test/allTests.js:81672:8\n\nReferenceError: addons is not defined\n
at Object. defineProperty.value (test/allTests.js:84455:18)\n 在 webpack_require (test/allTests.js:20:30)\n 在 test/allTests.js:81668:20\n 在 Object.defineProperty.value ( test/allTests.js:81732:6)\n 在webpack_require (test/allTests.js:20:30)\n 在 Object. (test/allTests.js:79742:21)\n 在对象。(test/allTests.js:80112:31)\n 在webpack_require (test/allTests.js:20:30)\n 在 Object. (test/allTests.js:77771:15)\n 在webpack_require (test/allTests.js:20:30)" }
这个错误的根源是什么?
reactjs - React 测试按钮属性禁用
我无法为按钮属性编写正确的测试用例disable
。我使用TestUtils
来自react-addons-test-utils
.
我有非常简单的组件:
我想编写测试来检查按钮是否被给定的道具禁用或未被禁用。测试如下所示:
而且这种测试的实现不起作用。第一次测试通过但第二次失败。
但是当 propTypes 设置为disabled: false
而不是disabled: () => false
两个测试都成功时。
问题是为什么测试是成功的,当函数disabled
是一个等于 false 的布尔常量值并且当disabled
一个函数返回时不起作用false
?
失败测试日志:
期望(收到).toEqual(期望)