问题标签 [testing-library]
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 - 作为集成测试的一部分,如何在组件中模拟 const 方法?
所以,我正在使用 jest & tesing-library 进行集成测试。所以,我有一个名为“Product”的“主要组件”,它引入了另一个组件,我们称之为“ProductListings”。
在“ProductListings”中,我单击一个在功能组件中调用方法的 div。我如何模拟它,以测试它被称为?
// 这就是 ProductListing 的样子(伪)。它是 IN Products 组件,我正在集成测试。
看我的问题。引入包含“内部组件 ProductListings”的父组件,然后我从中获得一个 div,然后单击.. 我需要在其中模拟该函数“fireTheAPI”
顺便说一句,“产品”看起来像:
reactjs - 使用@testing-library/react (react-testing-library) 进行单元测试分支覆盖率(100%)
如何使用 @testing-library/react (react-testing-library) 在单元测试中覆盖所有分支 (100%)。
下面是一些场景
条件声明
如何覆盖 if 和 else 分支中的语句?
组件中的私有方法
如何覆盖上述私有方法中的语句,这些语句创建为作为道具传递给子级并且仅从子级触发?
javascript - 测试未从预定义的路线开始
我对多页应用程序进行了测试。现在我想在测试中初始化一个路由。但我无法使用 react-router initialEntries 使其工作。我尝试了使用 createMemoryHistory 和 MemoryRouter 的路由器。但测试总是以“/”路由开始。
如何使测试从“/page-1”开始?
这是代码沙盒的链接 https://codesandbox.io/s/testing-react-89nfe?file=/src/index.js 由于沙盒还不支持玩笑模拟,因此测试在代码沙盒上失败。
app.test.js
应用程序.js
unit-testing - 如何对 Express 服务器生成的 .ejs 文件进行单元测试?
我有一个简单的 http Express 服务器,它服务于几个路由,比如 home、about、news 等。
对于每条路线,我使用res.render('some_ejs_file')
, 来呈现带有.ejs
扩展名的 html 页面。每个页面都有一个.js
文件脚本,我只是想知道如何渲染.ejs
文件以运行正确的 js 文件并渲染页面来测试它?
我安装了@testing-library
and jest
,这是我的home.test.js
文件:
但问题是,当我来自 的querySelect
东西时container
,它总是返回null
,我无法继续进行测试步骤。我做错了什么,如何获得.ejs
组合标记文件的适当测试体验?
这是我的笑话配置文件:
javascript - TypeError: Select is not a constructor when using Svelte and jest
在为 Svelte 组件编写 Jest 测试TypeError: Select is not a constructor
时,当组件使用 es6 导入语法导入库时出现错误。
测试选择.js:
TestSelect.spec.js:
笑话配置
我想知道是否有一个我错过的开玩笑配置选项。提前致谢
reactjs - fireEvent.change() 不输入值
我有一个非常简单的表单,它有 1 个输入,目前正在对其进行测试。但是,我无法通过 fireEvent.change() 添加输入。
主要代码
测试块
错误
javascript - 如何使用 Cypress 和 @testing-library/cypress 测试复选框切换,
我正在尝试使用 cypress 测试库编写测试手风琴的切换动作。下面是手风琴的标记,它正在使用复选框 hack 进行切换:
和测试如下:
问题cy.findByRole({ role: "checkbox" });
总是返回未定义,我该如何解决这个问题或以正确的方式编写上面的测试。
谢谢
ag-grid - 如何使用测试库测试 ag-grid 中的内容?
我正在尝试编写一些简单的测试,以使我要呈现的标头和数据按预期显示。我创建了一个 repo - https://github.com/olore/ag-grid-testing-library来重现。该表在浏览器中打开时看起来与我预期的一样。
和测试
在本地,前 2 列标题和数据是可访问的,但没有呈现其他列,正如我在 testing-library 的输出中看到的那样。我--env=jsdom-fourteen
按照其他帖子的建议使用。
奇怪的是,当在此 repo 的代码和框中时,没有为测试呈现标题或数据,与本地一样,浏览器看起来是正确的。
https://codesandbox.io/s/gallant-framework-e54c7。然后我尝试等待gridReady
https://codesandbox.io/s/intelligent-minsky-wl17y,但没有任何区别。
编辑:还尝试在 onGridReady 中直接调用函数,同样的问题(前 2 列通过,第二列失败)
javascript - fireEvent 没有点击 React 组件上的按钮
我正在为 React 组件编写测试。这是一个计时器,当你按下一个按钮时开始倒计时,然后当你按下同一个按钮时停止。我有一个测试用例试图按下暂停按钮,等待一秒钟,然后再次按下暂停按钮,检查计时器以确保一秒钟已经过去:
Timer.test.js
问题是,测试似乎没有按pauseButton
我想要的方式点击。当我运行我的测试时,Jest 在终端告诉我,timerOutput
结果是'25:00'
而不是'24:59'
,并且似乎组件未能通过测试。但这是测试的问题,而不是组件的问题;当我在浏览器中运行应用程序并自己按下按钮时,它会按应有的方式工作。如何让这个测试正常工作,并按我想要的方式点击按钮?