Jest测试在调用外部函数之后调用了一个闭包(一个内部函数),我遇到了问题。我尝试过使用spyOn,但没有得到积极的结果。这似乎是一个相对简单的问题,我还没有找到谷歌搜索的任何结果。
// helper.js
export const bar = () => {}
export const foo = () => {
bar(); //How do I test that this has been called?
}
//helper.test.js
import * as H from 'helper';
const barSpy = jest.spy
我希望模拟类的实现,但随后执行断言,即在我的测试中调用了这些方法。
以下结果如下:
Error: expect(jest.fn()).toHaveBeenCalled()
Expected number of calls: >= 1
Received number of calls: 0
我假设这里不起作用的是我对测试文件中的const service = new Service();的调用正在创建模拟的一个新实例。
如何模拟类,但在测试的其他地方实例化时,如何确保返回相同的实例?
// ./service.ts
class Service {
getNothing() {
测试套件一直运行得很好,直到没有。奇怪的事情只发生在我的机器上,CI工作正常。
我们的项目使用了Typecript,React,Jest和酵素,这就是我运行yarn jest时得到的
Test suite failed to run
ReferenceError: enzyme_1 is not defined
6 | // (global as any).jQuery = $
7 |
> 8 | Enzyme.configure({ adapter: new Adapter() })
| ^
9 |
at Object.<anonymous>
在安装了NPM软件包(我自己的软件包之一)之后,我得到了失败的测试。
具体来说,我得到了ReferenceError: cc is not defined,堆栈跟踪返回到我的NPM包中的导出之一。
cc是一个来自游戏框架(Cocos2d-x)的对象,它包含在我的项目中。
游戏框架没有包含在我的NPM包中,但是这个包确实引用了对象,并且假设无论什么项目已经安装了软件包,也会包含游戏框架。因此,从本质上说,Cocos2d-x是一个对等依赖项,但由于它本身并不是一个NPM包,所以没有被列为对等依赖项。
我在项目中测试的代码没有提到游戏框架。我从NPM包中导入的方法没有提到游戏框架。我正在使用析构(例
我试图模拟一个fetch(),它将数据检索到组件中。
,但我很难让它开始工作。
当我运行测试时,我会得到这个错误:babel-plugin-jest-hoist: The module factory of 'jest.mock()' is not allowed to reference any out-of-scope variables.
有没有办法让这些函数返回模拟数据,而不是真正尝试进行真正的API调用?
代码
utils/getUsers.js
返回具有映射到每个用户的角色的用户。
const getUsersWithRoles = rolesList =>
我正在向我的React Native项目添加Jest测试框架。我得到以下错误:
Failed to get mock metadata: /Users/me/Documents/Development/project/node_modules/global/window.js
我的测试文件如下所示:
import 'react-native'
import React from 'react'
import { MyComponent } from '../components/MyComponent'
import renderer from