我正在用jest.fn来模拟两个函数:
let first = jest.fn();
let second = jest.fn();
我如何断言first在second之前调用
我要找的是类似于 .calledBefore断言的东西。
更新我使用了这个简单的“临时”解决方法
it( 'should run all provided function in order', () => {
// we are using this as simple solution
// and asked this question here https://stackover
我正在使用Jest 21.2.1来运行对react应用程序的测试。奇怪的是,当我运行jest --watch (如前面提到的)来观察测试用例是否有任何变化时,我会得到一个错误,如下所示
Determining test suites to run...Error: This promise must be present when running with -o.
我试着检查Jest,发现函数需要两个参数,其中一个参数在本例中是未传递的(不确定如何传递)。也许是缺了配置?
任何建议都将有助于解决这一问题。
getTestPaths(
globalConfig,
changedFiles
当我运行命令jest --bail --findRelatedTests src/components/BannerSet/BannerSet.tsx时,会收到以下消息:
No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
No files found in C:\Users\user\code\repo.
Make sure Jest's configuration does not exclude this directory.
To set up Jest, ma
我正在使用jest进行测试,在一些测试场景中,我得到了jest消息:
Jest did not exit one second after the test run has completed.虽然采用了Jest的建议来运行--detectOpenHandles,并以永远不会结束的挂起测试过程结束,但我看到了其他在线建议,以添加--forceExit选项。现在测试结束了,一切都好了。
值得一提的是,无论是否使用--detectOpenHandles --forceExit选项,所有测试都可以正常运行并通过测试。
我想知道,在这种情况下,这是否被认为是最佳实践?或者它只是作为“急救”服务于我?这
我正在实现一个实用函数,它可以方便地多次调用jest.unmock
原来是jest.unmock
jest.unmock('got') // works
const mod = 'got'
jest.unmock(mod) // does not work
我试过像下面这样使用eval,但是它不起作用
const mod = "'got'"
eval(`jest.unmock(${mod})`)
有什么工作可以做吗?
这背后的理据是甚麽?
在测试Mocha和jsdom my Vue组件并在其中使用localStorage时,我得到了这个错误:
[Vue warn]: Error in data(): "SecurityError: localStorage is not available for opaque origins"
我在Github或这里找到的所有问题都引用了Jest,解决方案建议将Jest配置选项testUrl设置为任何有效的URL。但是如何直接在jsdom实例上设置它呢?
当我在初始化jsdom时添加一个options对象时-什么都没有发生:
let jsdom = require('j
我有一个带有多个spec文件(测试套件)的playwright-jest设置。我需要跳过其中的一个,但它需要保持在与其repo相同的目录中(移动它不是一个选项)。 package.json下的默认脚本是"test": "jest -c jest.config.js",我知道我们可以使用npm run test TestSuiteName.spec.ts为单个套件运行它,如果没有文件名- npm run test,它将运行整个测试计划-但是-我如何才能只排除一个(或几个)而运行所有其余的呢? 我试着为它找到配置标志,但没有成功。到目前为止,针对该特定文件的des
正如标题所示,在我的测试中,由于jest不允许从lowdb包导出,我遇到了麻烦。它似乎只为这个单个包抛出这个错误--我的其余代码也使用ES6导出,而我的package.json文件有键type: module。
我试过什么
添加类型模块-- Adding transformIgnorePatterns: ["<rootDir>/node_modules/(?!lowdb)"] -- Add a transform for js,它使用babel-jest -- Update my tsconfig将commonJS modulesUpdate my tsconfig
我想模拟一个模块进行测试。一切正常,但我必须将相同的代码复制/粘贴到每个测试文件中。我怎样才能使它更易于维护?
(这是在TypeScript项目中使用Babel和Next.js。)
生产代码如下所示:
import { useRouter } from 'next/router';
// Then call the hook in a React component:
const router = useRouter();
测试代码:
// I need to access these mocks in the tests
const mockRouterPush = j
我有一个create-react-app应用程序,经常使用jest进行测试,但我正在缓慢地迁移到cypress。
问题是,当我运行我的jest测试时,它包含了我的cypress测试,并给出了一个错误。
ReferenceError: Cypress is not defined
如何使我的jest (命名约定*.test.js)测试忽略我的cypress测试(通常称为*.spec.js)?
我在一个@storybook/react项目中使用create-react-app 6。
对于我所有的存储/对象,我都有成千上万的测试和模拟,等等。
这些模拟使用了jest.fn()。
我想在我的故事故事中重复使用这些模仿,但是它说的是jest is not defined,这是有意义的。
我想知道,在运行故事书时,是否有一种简单的方法可以在全球范围内提供笑话。
目前,我正在使用的每个模拟文件中添加import jest from 'jest-mock',但我想知道是否有更好的解决方案。
示例:
test.stories.tsx
import React from 'r
一旦调用了firebase数据库的异步函数,测试就无法正确退出。
的错误
Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the
5000 ms timeout specified by jest.setTimeout.Error:
和
Jest did not exit one second after the test run has complet