如何将jest测试配置为在出现警告时失败
console.warn('stuff');
// fail test
我最近使用v19.0.0中引入的warn方法来模拟console(通过global上下文/对象访问)
然后可以期望模拟的警告未被调用,如下所示
describe('A function that does something', () => {
it('Should not trigger a warning', () => {
var warn = jes
我很难模拟一个简单的依赖生成器函数
//generatorFunction.js
export default ()=>({execute: (arg1)=>Promise.resolve(arg1)})
//actualFunction.js
import generate from 'generatorFunction'
export default (arg1)=>generate(arg1)
//actualFunction.test.js
import actua
假设我有一个文件file1.js,其中包含:
const a = true;
let b;
if (a) {
b = c;
}
if (!a) {
b = d;
}
现在,当我在这个文件上运行测试用例时,我的第一个条件就被覆盖了。是否有任何方法可以通过将a设置为false来覆盖第二个条件,或者我是否应该更改代码,以便调用具有不同值的方法来测试每种情况,例如:
const a = true;
getBVal(a) {
return a ? c : d;
}
let b
我正在使用Jest为NodeJS编写单元测试。
我的一部分代码使用process.exit(1)退出,因此当尝试使用Jest测试它时,当到达此行时,测试终止,错误命令失败,退出代码为1。这是process.exit(1)的默认行为
谁能告诉我如何使用Jest来处理这个场景并继续进行其他测试吗?我认为,抛出一个错误会为您提供一个更易于维护和测试的代码。比如:
if (err) {
throw new Error("Some relevant error msg")
}
如果您坚持使用proc
标签: Jestjs
jest-preset-angular
来自Karma,我喜欢打开一个浏览器选项卡,不时检查测试的代码覆盖率。使用jest是否可以生成覆盖率文件夹,而不在控制台中打印覆盖率
我还没有找到任何有关此的cli或配置。您可以为类似这样的笑话设置coverageReporters配置:
jest.config.js:
module.exports={
// ...
封面传送器:['json','lcov','clover']
};
默认情况下,coverageReporters配置的值是[“json”、“lcov”、“text”、“clov
标签: Jestjs
aws-sdk-nodejsssmaws-parameter-storeaws-sdk-mock
我试图用下面的代码使用AWS sdk模拟AWS SSM,但不起作用。不抛出错误,在调用getParametersByPath时从实际存储中获取值
我看过aws sdk模拟文档,但似乎没有模拟ssm的示例,它是否受支持
AWSMock.mock('SSM', 'getParametersByPath', (params, callback) => {
callback(null, mockResponse);
});
我在尝试执行类似操作时遇到了这个问题:当尝试模拟SSM功能时,资源仍
有没有办法每次Jest的watch脚本触发时都运行ESLint?我想用-fix my files自动生成watch脚本lint。您可以使用jest runner eslint plugin来完成您所描述的操作
我正在尝试测试componentDidMount中的提取调用。尝试不同的解决方案,但总是走到死胡同。目前我有
组件
import React, { Component } from 'react';
import Seatmap from 'react-seatmap';
import '../../style/main.scss';
import seats from '../../seatData';
import Ticket from '../Ticket';
class Bo
我正在控制器中使用lodash/deep函数。对控制器执行jest测试时,会出现以下错误:
所有lodash函数都会给出错误
TypeError:cloneDeep_1.default不是函数
下面是示例代码
import cloneDeep from 'lodash/cloneDeep'
static transformBoardBasicInfo (rawBoard:any): any {
const clonedBoard: any = cloneDeep(rawBoard) a
我有一个Demo.tsx文件,其代码如下:
const aRef = useRef() as RefObject<HTMLDivElement>;
const bRef = useRef() as RefObject<HTMLDivElement>;
const a = 10;
const b = 10;
useEffect(() => {
if (!!aRef.current && !!bRef.current) {
const tem
标签: Jestjs
react-testing-library
我试图测试waitFor的说法,但当我使用承诺时,回调不会再次运行,即使它被拒绝
waitFor可能会多次运行回调
如果您有模拟API调用和
你需要等待你的假承诺全部解决
如果在waitFor回调中返回承诺(显式或
隐式地使用异步语法),则waitFor实用程序将不会调用
你再回电话,直到承诺被拒绝。这允许您
等待必须异步检查的内容
@EstusFlask你什么意思?不会复制我的问题?我专门运行了这段代码,我遇到了上面的问题。我的意思是其他人(不是你)可能无法复制它。我专门运行了这段代码,它按照
我有一个服务班
Service.js
class Service {
}
export default new Service();
我正试图为此提供一个模拟实现。如果我使用这样的东西:
jest.mock('./Service', () => { ... my mock stuff });
它工作正常,但是我无法访问在mock之外声明的任何变量,这有点限制,因为我想重新配置mock返回的内容,等等
我尝试了这个(受另一篇StackOverflow文章的启发:)
不幸的是,当我尝试运行
标签: Jestjs
performance-testing
我一直在比较函数范式和面向对象范式
作为其中的一部分,我想做一些性能测试
我现在有一些类似的测试:
it("Some long running performance test", () => {
const result = myFunctionWithLotsOfData();
});
现在,我只是打印这段代码运行的时间(大约5000毫秒)
我喜欢对它提供的所有断言和模拟功能使用Jest,以及它的实时重新加载等等
但是,我不希望这些测试一直
我使用的是无服务器应用程序的黑盒测试,因此在每个场景之后,我都需要一个拆卸步骤,以便清理测试期间生成的数据(在大多数情况下是删除db条目)
然而,它看起来并不是以玩笑的方式实现的,所以我想知道在每个场景之后实现拆卸步骤的最佳解决方案是什么
如何在jest中测试函数是否使用正确的上下文调用
我只能找到如何测试传入的参数。但是它没有测试这个上下文,我也找不到任何其他用于此上下文或示例的API。JEST
创建一个函数的名称,然后使用
test('this-using-Jest'的值,()=>{
常数foo={
名称:“foo”,
func:function(){
return`my name is${this.name}`;
}
}
const mockFunc=jest.spyOn(foo,'func');//监视foo.func()
标签: Jestjs
enzymecreate-react-appredux-saga
我正在尝试对我的一些redux saga生成器进行单元测试,但遇到了一些错误,我不知道如何解决。我正在使用createreact应用程序,所以我的测试套件是Jest和Enzyme
一个基本的例子:
设置:src/setupTests.js
import 'jest-enzyme'
import { configure } from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
global.fetch = require('jes
我已经按照安装说明进行了操作
当我使用npm run mocha时,我的测试车队使用botium.json中的dialogflow设置成功运行。
如果我对Jest(我的首选框架)遵循相同的流程,则该流程始终会失败,并出现以下错误:
Loading Botium plugin failed at Validate.Validate.then (node_modules/botium-core/src/containers/PluginConnectorContainer.js:99:15)
如果
如果我想在未找到用户的情况下使用此方法,则无法使用,因为已经使用值{u id:'5e81f97e6708f22e5c4697d2',全名:'user'}对findOne进行了模拟,但在这种情况下,我希望findOne返回未定义。
多谢各位
beforeach(异步()=>{
常量模块:TestingModule=等待测试。createTestingModule({
进口:[
PassportModule.register({defaultStrategy:'jwt'}),
JwtModule.r
我有一个简单的webworker,它进行一些轮询:
import { fetchLatestResults } from '../backend/fetchLatestResults';
let polling = false;
let symbolIds: string[] = [];
const fetchLatest = async () => {
if (!symbolIds.length) {
return;
}
try {
const res
标签: Jestjs
react-testing-libraryjest-dom
我有一个沙箱,在这里我重新创建了我在代码库中遇到的问题。
我有一个带有必填字段的表单,表单的提交处理程序中有一个回调。
如果表单无效,则实际组件不会正确触发事件处理程序。
但是,测试会启动处理程序,从而启动回调
我使用的是React 16.x、React测试库10.x和Jest DOM 5.x。(所有版本号都可以在上面的沙盒中看到)
我的实现是否确实不正确,或者我的测试是否糟糕?或者用于测试的人工DOM中是否存在缺陷?我不知所措。欢迎使用stackoverflow,最好显示代码的相关部分,而不
标签: Jestjs
react-testing-library
我的应用程序有点与众不同,因为外观实际上非常重要。这是一种照片处理应用程序,所以我希望能够编写测试来检查,例如,一个元素实际上有一个特定的背景颜色。我可以使用react测试库查找元素,但我的jest.toHaveStyle()断言似乎总是通过
被测元件(省略其余部件)
如果我将预期的颜色更改为其他颜色,它仍然会通过。到目前为止,我发现唯一使其失败的方法是说.toHaveStyle('background-color'),而不带值。。
我对sonarcloud报告有点困惑,我的react原生应用程序如下所示:
首先,除了作为快照的一部分之外,样式表是如何在测试中被覆盖的?其次,_showarter是一个被调用并生成自定义警报的方法。那么,如果MyAlert是100%覆盖的,那么既然我调用了showAlert方法来显示自定义的警报方法,为什么showAlert会部分覆盖呢
我在--verbose模式下运行Jest测试,以便能够通过控制台.log查看测试输出的内容
但是,Jest不仅生成原始控制台文本,还生成额外的文本
例如:
console.log("foobar")
而不是生产:
foobar
产生:
console.log
foobar
我如何使Jest完全不修改我的控制台.log函数?我只想按原样输出东西
我之所以想这样做,是因为Jest表示日志语句的方式在垂直方向上占用了大量空间,而且很难通读。实际上,直接转到更好,我也建
我得到这个错误与笑话-文件路径是不同的,这使我想知道为什么这是抱怨?我想我被告知index.js是一个重复的名称,即使mock位于不同的路径上——当然不是?我在测试文件中使用了这两个文件中的mock-我不能用jest使用索引文件吗
jest-haste-map: duplicate manual mock found: index
The following files share their name; please delete one of them:
* <rootDi
如何使用浅层渲染测试单击处理程序
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
标签: Jestjs
puppeteerjest-image-snapshot
我正在使用Puppeter进行视觉回归测试(具体来说,我正在为此使用jest图像快照库)。不幸的是,当我使用具有不同屏幕特征的机器时,屏幕截图略有不同,测试失败。例如,我有一个测试,屏幕截图最初是在非视网膜Mac显示器上拍摄的,但当测试在带有视网膜显示器的Mac上运行时,屏幕截图中存在一些细微差异,导致测试失败
有没有可能用木偶演员拍摄独立于所用显示器的屏幕截图
我试图通过调用setViewport在视网膜显示器上强制显示非视网膜屏幕截图,但没有帮助:page.setViewport({widt
标签: Jestjs
google-cloud-functions
我正在进行谷歌云功能测试
这些文件是:
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'),
{
在Ruby(使用RSpec)中,有一个名为的特性,允许您对一组期望进行分组,同时查看所有的失败
我想知道Jest是否也有类似的功能。框架似乎没有提供这一点,但可能有人知道库可能不可能:可能不可能:
使用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
标签: Jestjs
react-bootstrapreact-testing-libraryts-jest
我是新来的jest,为我们的react应用程序构建了这个简单的测试,它是用typescript编写的,在很大程度上依赖react引导。我尝试了酶和反应测试库,得到了相同的结果。我们也使用webpack,但这似乎与本案例无关
somedropdown.test.tsx:
import*as React from“React”;
从“反应引导/下拉菜单”导入下拉菜单;
从“反应引导/下拉按钮”导入下拉按钮;
从“@testing library/react”导入{render,screen}”;
D
我正在尝试使用以下设置使用Jest测试我的项目:
package.json:
{
"jest": {
"rootDir": "spec",
"transform": {
"^.+\\.jsx$": "babel-jest",
"^.+\\.js$": "babel-jest"
},
"moduleFileExtensions": [
"js",
"jsx"
],
"testRegex": "spe
如何限制jest中测试执行的并发性?假设我只想同时并行运行4个测试用例
我目前的问题是,我有很多使用真实数据库连接的集成测试。Jest并行执行太多的测试用例,因此经常会出现连接超时或测试数据库实例的性能显著下降,因为同时有太多的查询
我的所有集成测试套件都具有以下结构:
describe('<functionality x>', () => {
test('case 1', async () => {...})
test('case 2', async (
我试图对这个控制器进行单元测试,并模仿它所需要的服务/存储库
@Controller('auth')
export class AuthController {
constructor(
private readonly authService: AuthService,
private readonly usersService: UsersService,
) {}
@Post('register')
public async
npm警告已弃用urix@0.1.0:请看
这是我得到的警告。您能帮忙吗?尝试安装
npm安装--保存开发笑话
我将测试助手函数创建为Globals in Jest,以便能够在应用程序的每个测试文件中使用它们
我要把这个从我们的测试文件中删掉。我将转到setup-global.js文件,然后我会说global.loopExpect=expect()//for looping case
global.loopExpect = (actuals) => {
return {
toContainKeys: (keys) => {
if (actuals.length >
反应组件的类型如下所示
comp2.propTypes = {
type: PropTypes.oneOf(['a', 'b', 'c'])
}
在代码中,我是这样使用的
const MAP_TYPE_TO_URL = {};
// some values for MAP_TYPE_TO_URL : eg : MAP_TYPE_TO_URL['d'] = 'some value' , etc
// so i am manipulating MAP_TYPE_TO_URL wit
使用jest我无法测试导致进程退出的commander模块功能
例如,如果我传递了--help选项或一个无效参数,如-x(见下文)进程。退出或进程。stdout.write不会被调用,因为它们应该查看指挥官源
import {Command} from "commander";
let mockExit: jest.SpyInstance;
let mockStdout: jest.SpyInstance;
beforeAll(() => {
mockExit = jest.s
标签: Jestjs
babel-jestts-jestjest-fetch-mock
我有dh.js
const checkDExistsCallback = (err, dResp) => {
if (err)
cbResp.error('failed');
if (dResp.length > 0)
checkDCollectionExists();
else
cbResp.error('Not found.');
};
const checkDCollectionExists = ()
运行以下测试文件时出现以下错误:
//TestComp.test.tsx
从“React”导入React;
从“react native”导入{TextInput,View};
从“@testing library/react native”导入{render,firevent}”;
常量TestComp=()=>{
返回(
console.log(txt)}>
);
};
描述(“Testcomp”,()=>{
之后(()=>{
开玩笑。clearAllMocks();
});
测试(“测试我
我有一个使用jest的项目。历史上运行良好。一年后,当我打开它,不知何故,玩笑挂了。没有信息,没有错误,不能继续。(见图)有什么见解吗
Jest使用多线程方法运行测试,有时可能会遇到死锁。我在Git bash上也遇到了同样的情况,当时我在windows环境中运行项目。尝试添加一个
---我
如果没有任何进一步的信息,将很难找出为什么它不再有效。也许你应该从更新jest到最新版本开始。我做了“npm安装jest-g”,所以我想我得到了最新的jest。是的,笑话只是挂在那里,没有打印任何输出。是否有
我试图通过指定配置文件来运行jest。我使用的命令行是
"test": "jest -—config jest/jest.config.js",
我的jest.config.js文件如下所示
module.exports = {
bail: true,
verbose: true,
moduleNameMapper: {
'\\.(css|jpg|png)$': '<rootDir>/empty-module.js-'
}
};
module.export
我有一个函数,它附加一个随机数,然后调用另一个函数。我想检查它是否是用传入的文本调用的,并匹配任何随机数。我希望能够通过一个正则表达式,而不必开玩笑地与正则表达式匹配。比如:
const typeFn = jest.fn();
function type (text) {
typeFn(text + Math.random());
})
type('hello')
expect(typeFn).toHaveBeenCalledWith(/hello\d+/)
您可以使
我想知道为什么下面的代码不能开玩笑地工作。
我认为Error()会自动抛出,因此可以忽略它
expect(() => {
Error();
}).toThrow();
Error()创建一个Error对象,但仍需要使用throw抛出它:
expect(()=>{
抛出错误();
}).toThrow();
Error()创建一个Error对象,但仍需要使用throw抛出它:
expect(()=>{
抛出错误();
}).toThrow();
文件如下:
当涉及到应用程序的单元测试时,我们通常希望避免
建立数据库连接,保持测试套件的独立性和
他们的执行过程越快越好。但我们的班级可能
依赖于从连接实例中提取的存储库。
我们如何处理?解决方案是创建模拟存储库。在里面
为了实现这一点,我们建立了自定义提供者。每人登记
存储库由存储库自动表示
令牌,其中EntityName是实体类的名称
@nestjs/typeorm包公开了getRepositoryToken()函数
它返回基于给定实体的准备好的令牌
这到底是什么意思?自动完成文档只给出签
标签: Jestjs
zonezone.jsserenity-js
我们正在尝试使用serenityJS+Jasmine在Angular web应用程序上运行组件测试,但遇到以下错误。你知道我们如何解决这个问题吗
我编写了一个Nestjs示例项目,项目源代码:并尝试测试一个自定义权限保护
@Injectable()
导出类HasPermissionsGuard实现CanActivate{
构造函数(专用只读反射器:反射器){}
激活(
上下文:ExecutionContext,
):布尔值|承诺|可观察{
const routePermissions=this.reflector.get(
拥有\u权限\u密钥,
context.getHandler(),
);
如果(!routePermissions
我是javascript新手,我一直在尝试为他的代码编写测试,但我没能,我们应该使用jest。
我已经研究了很长时间没有找到解决方案
document.getElementById(“注册”).addEventListener(“提交”,函数(e){
e、 预防默认值();
数据={
用户名:document.getElementById(“用户名”).value,
电子邮件:document.getElementById(“电子邮件”).value,
密码:document.getEleme
1 2 3 4 5 6 ...
下一页 最后一页 共 14 页