Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 我如何用玩笑来模仿firebase Analytycs?_Reactjs_Unit Testing_Mocking_Jestjs_React Testing Library - Fatal编程技术网

Reactjs 我如何用玩笑来模仿firebase Analytycs?

Reactjs 我如何用玩笑来模仿firebase Analytycs?,reactjs,unit-testing,mocking,jestjs,react-testing-library,Reactjs,Unit Testing,Mocking,Jestjs,React Testing Library,我有一个使用firebase.analytics()的组件,我尝试模拟它 //__mocks__/firebase/app.mocks.ts export const analytics = jest.fn(); 当我在第二行尝试这样调用它时,我得到一个错误: firebase.initializeApp(clientCredentials); firebase.analytics(); 错误为TypeError:_app.default.analytics不是一个函数 用玩笑来嘲弄这

我有一个使用firebase.analytics()的组件,我尝试模拟它

//__mocks__/firebase/app.mocks.ts   
export const analytics = jest.fn();
当我在第二行尝试这样调用它时,我得到一个错误:

firebase.initializeApp(clientCredentials);
firebase.analytics();
错误为TypeError:_app.default.analytics不是一个函数

用玩笑来嘲弄这些:

jest.mock('firebase/app');
jest.mock('firebase/analytics');

我应该做更多的事情吗?

这里是一个只使用方法而不创建
\uuuumocks\uuuu
目录的示例

index.ts

从“firebase”导入firebase;
函数main(){
const clientCredentials={};
firebase.initializeApp(客户端凭据);
firebase.analytics();
}
导出{main};
index.test.ts

从“/”导入{main};
从“firebase”导入firebase;
jest.mock('firebase',()=>{
返回{initializeApp:jest.fn(),analytics:jest.fn()};
});
描述('6308620',()=>{
毕竟(()=>{
jest.resetAllMocks();
});
它('应该通过',()=>{
main();
expect(firebase.initializeApp).toBeCalledWith({});
预计(firebase.analytics)。TobeCalledTime(1);
});
});
单元测试结果:

PASS stackoverflow/6308620/index.test.ts(14.665s)
63008620
✓ 应通过(7毫秒)
----------|---------|----------|---------|---------|-------------------
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s
----------|---------|----------|---------|---------|-------------------
所有文件| 100 | 100 | 100 | 100 |
index.ts | 100 | 100 | 100 | 100 |
----------|---------|----------|---------|---------|-------------------
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:16.565s