Reactjs 我如何用玩笑来模仿firebase Analytycs?
我有一个使用firebase.analytics()的组件,我尝试模拟它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不是一个函数 用玩笑来嘲弄这
//__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