Jestjs 如何使用酶测试事件处理程序
如何使用浅层渲染测试单击处理程序 class Example extends React.Component { render() { const { message } = this.props return <Alert key={message.id} bsStyle={message.state} onDismiss={()=>this.handleAlertDismiss(message.id)}>{message.text}&
如何使用浅层渲染测试单击处理程序 class Example extends React.Component { render() { const { message } = this.props return <Alert key={message.id} bsStyle={message.state} onDismiss={()=>this.handleAlertDismiss(message.id)}>{message.text}&
编辑2:我现在已经在React应用程序中测试了这些文件。JavaScript按预期工作,因此唯一的实际问题似乎是Jest快照不一致地处理转义字符,包括以无效JS的方式处理转义字符,这可能会使调试变得混乱。测试仍然正常工作,只有查看快照可能会让人困惑 编辑:我的问题不是关于何时使用单引号或双引号的问题的重复。我想知道为什么在JSX或Jest快照中转义反斜杠似乎不起作用,而转义引号却起作用 \\ should become \ yet it appears as \\ in the official
我一直在我的组件上使用graphql装饰器(通过react apollo),为了让我的代码更加枯燥,我决定在另一个装饰器中封装graphql函数,如下所示: import { graphql } from 'react-apollo' export default function wrappedQuery(gqlDocument, numberOfItems) { return (component) => graphql(gqlDocument, { opti
我正在使用Puppeter进行视觉回归测试(具体来说,我正在为此使用jest图像快照库)。不幸的是,当我使用具有不同屏幕特征的机器时,屏幕截图略有不同,测试失败。例如,我有一个测试,屏幕截图最初是在非视网膜Mac显示器上拍摄的,但当测试在带有视网膜显示器的Mac上运行时,屏幕截图中存在一些细微差异,导致测试失败 有没有可能用木偶演员拍摄独立于所用显示器的屏幕截图 我试图通过调用setViewport在视网膜显示器上强制显示非视网膜屏幕截图,但没有帮助:page.setViewport({widt
我正在进行谷歌云功能测试 这些文件是: index.ts,它只导出也在那里导入的函数。 contactSupportByMail.t要测试的功能。 以及测试: describe('Cloud Functions', (): void => { let myFunctions; let adminInitStub; beforeAll((): void => { // [START stubAdminInit] // If index.js calls a
我模拟了MongoDB实例updateOne。在这段代码中,我发现了调用updateOne的UpdateByID。对于成功的案例,writeById方法调用UpdateByID两次。所以我希望已经被调用了两次,使用不同的参数。但是当我运行我的代码时,它两次期望相同的值。有人能告诉我我的代码出了什么问题吗 测试用例文件 const mongoDBInstance = new MongoDb( new MongoClient('testClient'), {
使用Jest Circus作为测试运行程序运行detox 17.4.3时,我在使用iOS模拟器时遇到以下错误 detox[18766] WARN: [Client.js/PENDING_REQUESTS] App has not responded to the network requests below: (id = -1000) isReady: {} Unresponded network requests might result in timeout errors in De
我是新来的jest,为我们的react应用程序构建了这个简单的测试,它是用typescript编写的,在很大程度上依赖react引导。我尝试了酶和反应测试库,得到了相同的结果。我们也使用webpack,但这似乎与本案例无关 somedropdown.test.tsx: import*as React from“React”; 从“反应引导/下拉菜单”导入下拉菜单; 从“反应引导/下拉按钮”导入下拉按钮; 从“@testing library/react”导入{render,screen}”; D
我有一个服务班 Service.js class Service { } export default new Service(); 我正试图为此提供一个模拟实现。如果我使用这样的东西: jest.mock('./Service', () => { ... my mock stuff }); 它工作正常,但是我无法访问在mock之外声明的任何变量,这有点限制,因为我想重新配置mock返回的内容,等等 我尝试了这个(受另一篇StackOverflow文章的启发:) 不幸的是,当我尝试运行
我一直在比较函数范式和面向对象范式 作为其中的一部分,我想做一些性能测试 我现在有一些类似的测试: it("Some long running performance test", () => { const result = myFunctionWithLotsOfData(); }); 现在,我只是打印这段代码运行的时间(大约5000毫秒) 我喜欢对它提供的所有断言和模拟功能使用Jest,以及它的实时重新加载等等 但是,我不希望这些测试一直
我使用的是无服务器应用程序的黑盒测试,因此在每个场景之后,我都需要一个拆卸步骤,以便清理测试期间生成的数据(在大多数情况下是删除db条目) 然而,它看起来并不是以玩笑的方式实现的,所以我想知道在每个场景之后实现拆卸步骤的最佳解决方案是什么
有没有一种方法可以用玩笑来测试这样的东西: 函数hello(回调){ someNonPromiseBasedAPI(回调); } 类似于Jasmine中的done()/waitsFor() Jest文档指出,要测试异步函数,它必须返回一个承诺,但我不想修改我的代码以适应测试。只需模拟someNonPromiseBasedAPI jest.mock('./path/to/someNonPromiseBasedAPI',(cb)=>cb('test')) const cb=jest.fn() 常量
我面临着这个问题。在运行我的单元测试之后。无论静态变量出现在哪里,都会发生相同的错误。你有什么解决办法吗?或者是什么导致了这个问题 同样,自动绑定也会显示相同的错误 例: 最后,我找到了解决办法 在babelrc文件的下面几行添加此项 "presets": ["env", "react"], "plugins": ["transform-class-properties"] 如果有人面临以下问题,请检查您的节点版本。它应该是8+版本。因为我面对这个问题 ...this.state is und
我想测试这个函数 export const compare = selector => (a, b) => selector(a).localeCompare(selector(b)) 目前,compare函数被称为 const mapStateToProps = state => ({ items: getPolicies(state) .map(d => d) .sort(compare(d => d.name)
我想测试选择器的所有子项,但第一个子项除外,如果有人能提供帮助,我将不胜感激并提前感谢 我已经试过了,但没有一行行有效: expect(wrapper.find('.icons .icon:nth-child(n+2)').hasClass('arrow-right')).toEqual(true); ////////////////////////////// expect(wrapper.find('.icons .icon:not(:first-child)').hasClass('a
我正在使用Stenciljs和Jest。 我很难测试生命周期中触发的事件(componentDidLoad) 我可以进入生命周期,但无法测试.emit()事件 我尝试了以下方法: .spec.ts it('should spyOn componentDidLoad', () => { const component = new App(); jest.spyOn(component, 'componentDidLoad'); let eventSpy = jest.fn
嘿,我无法让testMatch获取我的测试文件。这是我的配置: module.exports = { preset: 'jest-puppeteer', testMatch: [ '**/tests/**/?(*.)+spec.js' ] }; 我的目录布局: - Automation - jest.config.js - tests - single-property - index.spec.
我正在从React组件对HTML进行快照测试: describe('something', () => { const wrapper = mount( <MockProvider> <MyCompoent /> </MockProvider>, ); test('matches the snapshot', () => { expect(wrappe
我将Next.js与样式化的jsx一起使用,测试enzyme+jest 我想测试道具的风格,但我不知道如何测试 index.js const App = (props) => { const { className, styles } = styles(props); return ( <div className={`${className}`}> <h1>test</h1>
开玩笑地使用test.each,我想传入一个布尔值,用于切换我是否期望得到某样东西 这是我试图避免的重复代码类型: if(expectFoo){ expect(一个对象).toContainEqual( expect.objectContaining({ 姓名:“富” }) ); }否则{ expect(一个对象).not.toContainEqual( expect.objectContaining({ 姓名:“富” }) ); } 下面是一些伪代码,它们说明了我首选的(更简洁、更短的)方法
在将expect.hasAssertions()和expect.assertions(0)添加到我现有的Jest(js)测试中时,我发现Jest意外地失败了一些测试,因为预期的断言调用数与实际的断言调用数不匹配 预期将调用零个断言,但收到一个断言调用 我发现,即使我从头开始创建了一个项目并添加了非常简单的测试,Jest也会因为预期/实际的断言调用而失败 例如。 从Jest的网站向示例添加expect.assertions(0)失败 test('two plus two is four', ()
我正在使用Jest测试框架为我的JavaScript/React JS应用程序编写单元测试。当我运行测试时,我得到以下错误 ● Test suite failed to run Jest encountered an unexpected token This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.
我有限的大脑有时难以解释节点树阵列的差异 我发现jest的输出很难理解: Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 5 @@ -1,10 +1,15 @@ Array [ Object { "children": Array [ Object { "children&q
我使用酶的安装方法来测试一种反应成分。有人知道为什么会出现这个错误吗 src测试失败\uuuuu\components\dashboard\widgets\livenessProbeTest.js(29.386s) ? livenessProbe.js>显示正确的标题 TypeError:ReactDOM.render不是函数 at Object.ReactTestUtils.renderIntoDocument (node_modules\react\lib\ReactTestUtils.j
Jest正在获取一个包的旧版本,因此我的测试会失败,除非我使用——无缓存。我甚至可以从文件夹node\u modules中删除包文件夹,Jest很乐意运行测试(几乎所有测试都通过了) 那么如何清除Jest缓存呢?您可以通过运行找到缓存位置。查找cacheDirectory键。它的值是您需要删除的文件夹的名称。从Jest 22.0.0+开始,您可以使用以下选项: 删除Jest缓存目录,然后在不运行测试的情况下退出。如果传递该选项,将删除cacheDirectory,或Jest的默认缓存目录 就跑吧
我正在尝试做下面这样的事情 const url = await page.url(); await page.waitFor(url === 'localhost:3000/blogs'); 我也试过了 await page.waitFor(url).toEqual('localhost:3000/blogs'); 并且还使用waitForFunction方法尝试了所有这些场景,但无法使任何场景正常工作。该函数接受选择器、函数或超时。若你们想知道url是否等于某个东西,那个么就为它写一个函数
我有以下单元测试: var { Mockgoose } = require("mockgoose"); var mongoose = require("mongoose"); var Transaction = require("./transaction"); var mockgoose = new Mockgoose(mongoose); describe("transaction", function() { afterEach(function() { return mo
我的组件抛出错误(,应该是) 您可以这样做: it('should throw an error when there is an error', () => { try { wrapper.setState({error: true}); expect(true).toBe(false); //Fail test if no error is thrown } catch (error) { expect(error).toBe(error); //Pas
是否可以通过设置自定义环境,还是只与节点和jsdomenvs一起使用 例如: 是的,您可以使用为单个Jest测试设置自定义环境 如果您的自定义环境作为包安装在node\u modules中,则只需使用模块名称即可 或者,如果自定义环境是在项目中的文件中定义的,则可以使用该文件的路径(在本例中是项目根目录中的my custom env.js): /** * @jest-environment my-custom-env */ /** * @jest-environment ./my-cu
我正在用笑话测试Redux操作创建者 这是操作创建者: const addDiscount=({code})=>(dispatch,getState)=>{ const{id}=getState().token; 退货({ 全部:折扣({ 正文:{ 代码 }, 身份证件 }), 类型:添加折扣。三元组 }); }; 这是我的测试: const apiCallMock=jest.fn(); const dispatch=jest.fn(()=>{ 返回{ apiCallMock }; }); c
我在写笑话快照测试。我的快照文件有时包含。这是什么意思 例如: <div> <!----> <br /> </div> 您将看到HTML注释标记的开始的串联。参考
我使用Mongdoose和Nestjs创建了一个简单的RESTAPI。我总共做了两次测试,结果都失败了。 测试输出: src/app/auth/auth.service.spec.ts失败 ● 测试套件无法运行 Cannot find module '@shared/errors' from 'user.service.ts' 1 | import { BadRequestException, Injectable } from '@nestjs/common'; 2 | import
我目前正在使用@apollo/client-graphql-npm包进行react,我有一些订阅,我想在onSubscriptionData函数中测试它们的功能性,但似乎找不到类似的例子。请帮帮我:)
我想设置两个不同的环境,并能够在观察模式下运行 |-- /server | |-- index.js <- Node |-- /client | |-- index.js <- jsdom |-- package.json 但这不允许我同时运行这两个程序。编辑(2018年1月): 现在可以这样做了(从Jest v20开始),该选项称为projects。阅读更多关于 基本上,您可以定义希望Jest在其中运行的项目数组: { "projects": ["&l
当我使用jest运行测试时,其中一些测试因每个项目失败而失败,我会得到如下列表: FAIL src/app/models/item.model.spec.ts ● Item› #getItem › do stuff expect(received).toBeFalsy() Received: true 293 | 294 | test('do stuff', () => { > 295 | expect
我试图在没有--env=jsdom的情况下在react应用程序上运行jest测试。问题是我模拟了setupTests.js中的所有信息,但仍然缺少一些信息。在运行测试获取错误时: TypeErrorL Cannot use 'in' operator to search for 'OTransitionProperty' in undefined 有人能帮我解决这个问题吗?要知道需要模拟什么,您必须提供引用otTransitionProperty的代码片段。它可能是一个样式对象。为什么在没有-
我刚开始开玩笑,有一个愚蠢的检查我无法处理,我想检查是否有错误,我试了下一句,但不起作用,你知道我做错了什么吗 //This is the function I want to check const ReadDir = (path) => new Promise((resolve, reject) => { fs.readdir(path, (err, files) => err ? reject(err) : resolve(files));
我的测试在本地运行良好,但在CircleCI中,我遇到了一个错误“找不到模块‘共享数据模型’”,这是我的工作区之一 错误的堆栈跟踪指向Resolver.resolveModule(../node_modules/@jest/core/node_modules/jest resolve/build/index.js:276:11) 我在跑步 笑话25.1.0, 纱线1.22, Node.js 12.16 你知道这是什么原因吗?谢谢我解决了这个问题。我正在使用typescript CLItsc将模块
可能是个愚蠢的问题 我开始使用JEST进行测试 我有我的js应用程序: var app={ init:function{ //some code}, ... } module.exports = app; 和我的app.test.js: const {app} = require('../js/index.js') test('type of variable', () => { expect(typeof app.someFunction(app.someVar)).toBe("
如何使用spyOn测试这段代码?有人能帮我找到一个合适的解决办法吗 const controller = {}; controller.fetchCars = async (req, res) => { const result = await getCarsService(req.body); res.json(result); }; 我试过这个: it('fetchCars should call getCarsService', () => {
尝试设置与木偶演员的打字脚本玩笑 我将按照下面提到的逐步说明进行操作 有一个简单的测试 describe('Google', () => { beforeAll(async () => { await page.goto('https://google.com') }) it('should display "google" text on page', async () => { await
我对用jest编写测试非常生疏。我正在使用随create react app提供的库 我有一个click handler钩子,我想测试一下,但不确定从这里到哪里去: import { useRef } from 'react'; import useOutsideClickHandler from './useOutsideClickHandler'; test('handle outside clicks hook', () => { const div = document.
如何模拟变量的值?我尝试了mockReturnValue和mock,但我认为我在使用它时犯了一些错误 main.js test/main.js jest.fn().mockReturnValue(true)即使它不是一个函数?是的,这就是在jest中模拟值的方式。他们有一个广泛的API,在这里你只能模拟一个值,或者一个解析/拒绝的值。请提供您的案例,包括所有相关文件。现在还不知道isAvailable会发生什么。有可能它不能被嘲弄。为什么你认为你需要在这里嘲弄任何东西? const isAvai
我已经设置了Browserify在/node\u modules和/js中查找模块,但Jest不喜欢这样。有没有办法配置Jest的模块搜索路径
我使用jest.spyOn()和mockImplementation将未定义为模拟api调用的响应 佐贺 } Saga.test.tsx })) 任何帮助都将不胜感激。这件事很简单,但我一直坚持这一点。当将sagas作为纯生成器进行测试时,redux saga中间件并没有连接起来驱动生成器-您必须自己来做。因此,实际上不会调用SkillRepository.getAllSkills,而是需要将预期值提供给generator.next()。您可以在测试部分的第一个示例中看到这一点,其中调用了gen
我想在我的jest测试套装中使用JSDOM。然而,虽然JSDOM standalone工作得很完美,但当我在jest测试中运行它时,它会抛出关于编码的奇怪错误。 看那个片段 const { JSDOM } = require("jsdom"); describe("suit", () => { test("test", () => { JSDOM.fromURL("your_url", {}).then(dom => { expect(1).toBe(
我正在用Jest测试Electron应用程序的库代码。Jest对要求做了一些奇怪的事情,这干扰了电子需要做的事情。。。我想 Spectron旨在允许您通过库调用创建电子应用程序,从而从测试框架中访问各种电子位 最终,我需要能够用一些来自electron的真实东西(比如创建浏览器窗口)来模拟require('electron'),主要是为了让各种库位能够按预期工作 下面是它应该工作的样子: 在package.json中: "jest": { "moduleNameMapper": {
我想使用Jest对我的Adobe JSX文件进行单元测试 然而,所有Jest教程都有一些我不使用的package.json,它们使用ES3 javascript中没有的模块和需求,等等 另外,“JSX”已经被React占用了,所以它也可能会认为我在做React文件,而不是Adobe ES3文件 是否有一些方法可以使用Jest而不用担心任何模块和包?我只是想测试一些古老风格的ES3代码,它们只是javascript。 如果JSX扩展将把事情搞得一团糟,有没有办法用一个JS文件做到这一点呢?最终我得
我试图使用以下代码在nestjs中编写我的第一个e2e测试: describe('AppController (e2e)', () => { let app: INestApplication; beforeAll(async () => { const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [ AppModule, ]
我有这样的功能部件 export default function HeaderDropdown () { const [userInfo, setUserInfo] = useState([]); const [languageList, setLanguageList] = useState([]); const [preferredLanguage, setPreferredLanguage] = useState(); useEffec