Reactjs 存根法

Reactjs 存根法,reactjs,jestjs,mocha.js,chai,Reactjs,Jestjs,Mocha.js,Chai,我的一个react组件中有一个loadDataFromLocalStorage()方法 loadDataFromLocalStorage()将从localStorage获取项目并返回它 所以我正在为myFunc()编写单元测试用例 当我尝试运行测试时,我看到loadDataFromLocalStorage()没有从localStorage检索数据。所以我猜测试将无法访问本地存储并返回数据 因此,作为替代方案,我需要为 loadDataFromLocalStorage()并返回它,以便可以对myF

我的一个react组件中有一个loadDataFromLocalStorage()方法

loadDataFromLocalStorage()将从localStorage获取项目并返回它

所以我正在为myFunc()编写单元测试用例

当我尝试运行测试时,我看到loadDataFromLocalStorage()没有从localStorage检索数据。所以我猜测试将无法访问本地存储并返回数据

因此,作为替代方案,我需要为 loadDataFromLocalStorage()并返回它,以便可以对myFunc进行单元测试


请告知..

以下是解决方案,即文件目录的结构:

。
├── __嘲弄__
│   └── loadDataFromLocalStorage.ts
├── 索引规范ts
├── 索引
└── loadDataFromLocalStorage.ts
1个目录,4个文件
原始函数
loadDataFromLocalStorage.ts

函数loadDataFromLocalStorage(){
return()=>{
返回“”;
};
}
从本地存储导出默认loadDataFromLocalStorage;
myFunc
中使用
loaddatafromloctorage
函数:

从“./loadDataFromLocalStorage”导入loadDataFromLocalStorage;
常数模块={
myFunc(){
const data=loadDataFromLocalStorage();
log(`data:${data}`);
如果(数据){
返回true;
}
}
};
导出{someModule};
Mock
loadDataFromLocalStorage
函数位于
\uuuuu mocks\uuu
目录:

函数loadDataFromLocalStorage(){
return()=>{
返回“模拟数据”;
};
}
从本地存储导出默认loadDataFromLocalStorage;
单元测试:

jest.mock('./loadDataFromLocalStorage.ts');
从“/”导入{someModule};
描述('someModule',()=>{
它('t1',()=>{
期望.断言(1);
const actualValue=someModule.myFunc();
expect(实际值).toBeTruthy();
});
});
单元测试结果:

PASS src/mock function/questions-574989/index.spec.ts
某些模块
✓ t1(10ms)
console.log src/mock function/questions-57494989/index.ts:6
数据:模拟数据
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:2.44秒,估计3秒

loadDataFromLocalStorage
的来源是否可能重复?这对于存根方法很重要。@felixmosh loadDataFromLocalStorage是在myFunc()之外定义的方法。如何获取它的引用?
myFunc(){
    var data = loadDataFromLocalStorage()();
    if(data) {
      return true;
    }    
  }