与开玩笑嘲笑移相器
我一直在尝试设置玩笑作为正在使用Phaser正在处理的项目的测试框架,并且我被卡住了,试图嘲笑移相器本身.我首先遇到了 a>带有缺少的画布,我能够从链接中解决.但是现在我遇到了另一个错误"无法读取未定义的属性'postion'. jest.config.js: module.exports = { verbose: true, roots: ['./src'], transform: { '^.+\\.tsx?$': 'ts-jest', }, testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$', moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], moduleNameMapper: { '\\.(css|less|scss)$': 'identity-obj-proxy' }, set
0 2023-05-25
编程技术问答社区
Jest导入语句:'TypeError。不能设置属性'fillStyle'的null'。
i类型: npm test 我得到: 有趣的是,导入语句在bootscene.test.js文件中起作用,但在导入的文件中不起作用. 我专注于在开玩笑下不起作用的导入语句.因此,我认为这也许与ECMA脚本版本开玩笑有关.因此,我尝试了 this 解决方案,但错误仍然存​​在. 这是这个问题的回购/分支. 当我键入npm start时.一切都迅速流动,没有错误. 解决方案 我通过关注 感谢Cherrydt. 其他解决方案 发生错误是因为开玩笑无法添加帆布,我们需要做.对我来说,这是因为我正在使用Lottiefiles进行应用. 这是我为我的React应用程序修复它的方式. 在下面安装开玩笑的冰淇淋. npm i jest-canvas-mock 然后转到设置文件,例如 setup-tests.js ,然后以下面的方式导入jest-canvas. import "jest-canvas-mock"; 现
0 2023-05-25
编程技术问答社区
在Jest单元测试中,Intl.NumberFormat的行为是不正确的?
var number = 123456.789; console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }) .format(number)); // expected output: "123.456,79 €" 但是,在我的开玩笑的单元测试中,我得到了€ 123,456.79,根据我和mozilla示例,对于fr-FR fr-FR的位置是不正确的. 我试图加载多填充和语言环境数据,但似乎无法解决问题 import 'intl'; import 'intl/locale-data/complete'; import 'intl/locale-data/jsonp/fr'; import 'intl/locale-data/jsonp/fr-FR'; import 'intl/dist/Intl.complete'; 有什么想法可能出了什么? 解决方案
0 2023-05-23
编程技术问答社区
如何测试Material-UI Popover的关闭实现
我想确保我的实现 popover 元素与触发按钮结合按预期工作. 我无法进行工作测试,以断言用户按下ESC后弹出窗口关闭.我能够通过模态使该测试工作,但是我必须在当前项目中使用弹出窗口. 组件代码: import { Button, Popover, } from '@mui/material'; import React from 'react'; export default function SimpleModal() { const [anchorEl, setAnchorEl] = React.useState(null); const handleClick = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; const handleClose
2 2023-05-23
编程技术问答社区
我如何在jest中模拟react-i18next和i18n.js?
package.json "moduleNameMapper": { "i18next": "/__mocks__/i18nextMock.js" } i18n.js import i18n from 'i18next' import XHR from 'i18next-xhr-backend' // import Cache from 'i18next-localstorage-cache' import LanguageDetector from 'i18next-browser-languagedetector' i18n .use(XHR) // .use(Cache) .use(LanguageDetector) .init({ fallbackLng: 'en', // wait: true, // globally set to wait for loaded translations in trans
14 2023-05-22
编程技术问答社区
如何使 react-i18n 翻译文件在使用 react-testing-library 和 jest 进行的单元测试中使用?
我正在用嘲笑和对我的前端应用进行反应测试库进行单位测试,该应用是由React完成的.在我添加了React -I18Next -library的国际化之前,我的单元测试效果很好.现在,当我运行测试时,似乎找不到/使用翻译文件和所有应该阅读某物的地方,都是空的.我正在使用带有钩子的最新react版本,而不是react.com.我正在使用这种" const-components": const ComponentName = ({t}) => { return( {t('example')} )} export default ComponentName; 国际化在实际页面中非常有效,但仅由于不使用Translation-File而导致的单元测试失败,因此我认为问题是正确嘲笑翻译文件.我只找到一些使用此的建议解决方案的建议. 我试图用jest.fn()嘲笑它,但是我不确定哪个功能是一个函数,我应该
0 2023-05-22
编程技术问答社区
在JEST中为i18n嘲弄useTranslation不工作
我的React组件使用I18Next的翻译,我正在尝试使用Jest为其创建测试.但是,什么都没有被翻译,我尝试嘲笑以下的USETRANSLANSLATION功能: const useMock : any = [(k: any) => k, {}]; useMock.t = (k: any) => k; useMock.i18n = {}; jest.mock('react-i18next', () => ({ // this mock makes sure any components using the translate HoC receive the t function as a prop /* tslint:disable-next-line:variable-name */ useTranslation: () => useMock, })); 我在做什么错? 解决方案 创建一个模拟文件:__mocks__/react-i18next.useT
0 2023-05-22
编程技术问答社区
如何解决 "类型错误": 使用Jest测试i18next时,无法读取未定义的属性'类型'。
我有一个React项目,我包括I18Next = 15.0.4和React-I18Next = 10.2.0依赖项.我创建了一个用于使用React-I18Next初始化I18Next的模块,我正在尝试使用Jest. 我尝试导入我的i18n模块,该模块初始化I18Next和单元使用Jest. 进行测试. 这是我的i18n.ts 的模块 import i18next from "i18next"; import { initReactI18next } from "react-i18next"; const config = { resources: { en: { static: {}, }, }, fallbackLng: "en", defaultNS: "static", ns: "static", interpolation: { prefix:
8 2023-05-22
编程技术问答社区
如何在玩笑测试中模拟json.parse()
我在代码中有一个尝试/捕获,当代码落入catch部分时,它击中了json.parse() catch(err){ JSON.parse(err.message) } 代码正在工作,但测试失败.测试只是断言在尝试中正在发生某些事情 try { popUp.method(mockedUrl) } 测试只是断言这种方法是被称为的,但由于某些东西在JSON.parse()阶段正在爆炸而失败.只是想知道我怎么能使这个固执,以便知道我将我传递到JSON中的内容? 解决方案 您可以模拟JSON.PARSE实现 JSON.parse = jest.fn().mockImplementationOnce(() => { // return your what your code is returning. }); 一旦您不应该测试JavaScript内置对象:JSON,这应该足够了.因此,您将代码从中返回所期望的内容,其余的应该很好. 其他解决
0 2023-05-20
编程技术问答社区
测试react组件:Jest遇到意外令牌
我试图用嘲笑测试,但有一个错误: 开玩笑遇到了一个意外的令牌 这通常意味着您试图导入一个玩笑无法解析的文件,例如这不是简单的JavaScript. 我有一个照片库应用程序,每当我单击图像时,模态就会弹出图像.我想测试当我单击图像时,弹出窗口显示或存在.有没有办法将其考虑在内? 这是我的代码: import { shallow, mount, render } from 'enzyme'; import App from '../client/src/components/App'; describe('', () => { it('should popup image on click', () => { const wrapper = shallow( ); wrapper.find('.item item-0').simulate('click');
2 2023-05-16
编程技术问答社区
使用路径别名的自动导入出现问题
当从Angular 9应用程序中提供路径别名的文件夹中自动导入服务/组件时,我遇到了奇怪的问题. 这些是我在 tsconfig.json 中定义的别名 "paths": { "@core/*": ["app/core/*"], "@shared/*": ["app/shared/*"], "@state/*": ["app/state/*"] } 然后,在核心文件夹中,我在 index file(app/core/index.ts) 中重新删除所有服务 export * from './sse/sse.service'; export * from './rack/rack.service'; 现在,当我将服务注入构造函数时,提供的自动导入选项会导入有缺陷的路径: // Incorrect - auto imported path import { RackService } from '@core/'; // Correct path afte
0 2023-05-16
编程技术问答社区
React Jest和Msal获得Browserautherror:加密货币
我正在尝试测试一些使用MSAL进行身份验证的组件. 到目前为止,我有一个简单的测试,该测试测试我的组件是否可以呈现,如下: // const msalInstance = new PublicClientApplication({ auth: { clientId: config.appId, redirectUri: config.redirectUri }, cache: { cacheLocation: 'sessionStorage', storeAuthStateInCookie: true } }); 进行测试时,我会收到以下错误: BrowserAuthError: crypto_nonexistent: The crypto object or function is not available. Detail:Browser crypto or msCry
0 2023-05-16
编程技术问答社区
开玩笑的modulenamemapper查找文件:"解析器":未定义
我在路径下的component文件夹中有一个文本文件:src/components/text 但是,当使用WebPack别名import Text from "components/text";时,Jest找不到此文件. 我尝试添加到package.json: "jest": { "globals": { "NODE_ENV": "test" }, "transform": { "\\.[jt]sx?$": "babel-jest" }, "verbose": false, "rootDir": ".", "collectCoverageFrom": [ "**/*.{js,jsx,ts,tsx}", "!**/*.d.ts" ], "moduleFileExtensions": [ "js", "jsx", "t
0 2023-05-16
编程技术问答社区
在JavaScript的React项目中,Jest Heap内存使用量很高
我在与Jest测试时记录了堆的用法,因为我们的开玩笑测试(60多个测试用例和250个测试)在我们的CI中导致了137个未记忆的例外. 主管部门正在问我有关笑话内存泄漏的信息,因为节点进程在机器上运行时使用了ARROUND 5GB RAM. 我正在研究开玩笑的堆,以及如何调试,所以我发现了这些堆的快照,您可以在运行时使用Chrome Inspektor进行: node --inspect-brk --expose-gc ./node_modules/react-scripts/node_modules/.bin/jest --runInBand --logHeapUsage ... or for create-react-app yarn react-scripts --inspect-brk test --runInBand --logHeapUsage 这种堆使用的结果对我来说是非常混乱的,但是我发现了一些我知道的东西,例如React-Dom和Lodash.
0 2023-05-16
编程技术问答社区
在jest中测试一个vue组件时,document.querySelector总是返回null。
这是我的测试: jest.mock('gsap') import TweenMax from '../../__mocks__/gsap' import Component from '@/components/Callback/Form.vue' import { shallow, createLocalVue } from '@vue/test-utils' const localVue = createLocalVue() test('phone opacity changing from 1 to 0 in totalTime', () => { const wrapper = shallow(Component, { localVue, mocks: { localStorage }, watch: { step },
2 2023-05-15
编程技术问答社区
如何用开玩笑的ES6(无打字稿)模拟Prisma客户端?
Prisma文档的示例是嘲笑客户并使用开玩笑和打字稿进行单元测试.有什么方法可以在不使用TypeScript的情况下嘲笑客户? 如果您可以举个例子,我会很感激. 要添加的小东西:我正在使用Prisma的所有功能中使用依赖注入. 解决方案 我已经制作了Nodejs演示,它等同于官方指南 - 单元测试(TypeScript版本). 请参阅: -Test 它可能会有所帮助. 其他解决方案 我现在的解决方案: 我正在手动嘲笑数据库对象并将其传递给使用它的函数:我不确定这有多有用,但它有助于避免呼叫对真实数据库. const mocked_db = { user: { findFirst: jest.fn(() => Promise.resolve( { id: 2, first_name: "Basel",
6 2023-05-14
编程技术问答社区
如何在jest中运行普通转换后转换模块
测试与开玩笑的反应组件.其中一些组件利用开放式层(OL软件包v5.2.0).在OL软件包V4中,我应用了TransformignorePattersns以使OL包装转换: "jest": { "transformIgnorePatterns": [ "node_modules/(?!(ol)/)" ], (...) } 现在我在运行NODE_ENV=test jest时会遇到以下错误: (...) (...)/node_modules/ol/index.js:5 export {default as AssertionError} from './AssertionError.js'; ^^^^^^ SyntaxError: Unexpected token export 14 | let map = new Map({ 15 | layers: options.layers, > 16 |
0 2023-05-11
编程技术问答社区
如何使用createReactApp测试一个包含OpenLayers地图的组件
我有这样的组件: import React, { Component } from 'react'; import Map from 'ol/map'; import View from 'ol/view'; import Tile from 'ol/layer/tile'; import OSM from 'ol/source/osm'; import { mapInitialized } from '../../actions/map'; export default class MapWrapper extends Component { componentDidMount() { const map = new Map({ layers: [ new Tile({ source: new OSM(), }), ], view: new View({
0 2023-05-11
编程技术问答社区
使用Jest和酶在更改事件上模拟vs道具
我正在尝试进行多个onchange事件的测试.现在的测试通过以下代码通过,但不影响其覆盖范围,意味着不正确 wrapper.find('Datasubjects').props().onChange({City:{target:{value:'test'}}}) ,但是如果我使用以下内容,则会失败: wrapper.find('Datasubjects').find('input[id="city-label-id"]').simulate('change',{City:{target: {value:'test'}}} ) 这是Render()的一部分,显示了我要测试的Onchange事件: Ci
2 2023-05-08
编程技术问答社区
玩笑测试可观察到的东西
如何用嘲笑测试可观察的? 我有一个可观察到的〜每一秒钟,我想测试第一个事件在开玩笑之前是否正确触发. . const myObservable = timer(0, 1000); // Example here it('should fire', () => { const event = myObservable.subscribe(data => { expect(data).toBe(0); }); }); 此测试通过,但是如果我替换为toBe('anything'),它也会通过,所以我想我做错了什么. 我尝试使用expect.assertions(1),但它似乎只是在处理承诺. 解决方案 在开玩笑的文档中有一些很好的例子,内容涉及通过该测试的参数.可以调用此参数以发出传递测试的信号,也可以在其上调用失败以使测试失败,或者可以超时和失败. /p> 示例 请注意,我将超时设置为1500ms const myObse
2 2023-05-07
编程技术问答社区