javascript - 如何模拟模块常量映射?
问题描述
在编写测试时,假设需要模拟模块级别映射。我如何模拟不cacheMap
使用 jest 导出的测试?
const cacheMap = new Map<string, string>();
export function add(key: string, value: string) {
cacheMap.set(key, value);
}
export function remove(key: string) {
cacheMap.delete(key);
}
解决方案
您添加一个具有默认值的可选参数,如下所示。当你在测试时,你注入你想要的地图,覆盖全局地图。
const cacheMap = new Map<string, string>();
export function add(key: string, value: string, map: Map = cacheMap) {
cacheMap.set(key, value);
}
export function remove(key: string, map: Map = cacheMap) {
cacheMap.delete(key);
}
test('add', () => {
const map = new Map<string, string>()
add('a', 'b', map);
expect(map.get('a')).toBe('b')
})
推荐阅读
- c# - 性能监视器 - IO 数据操作/秒
- sql-server - BCP 命令输出文件直接到云存储
- java - 用数据填充 TableView 时发生 ClassCastException
- angularjs - 来自 API 服务的 Angular 1.5.9 中的动态元标记
- c# - 使用 1 次搜索从 SQL 数据库返回所有搜索结果
- swift - 属性字符串的 Swift 标题更改颜色保持默认蓝色
- cmake - In cmake, include arbitrary build-time information in/with the distributed executable
- sql - postgres SQL 更新列,其值来自正则表达式 + 更多
- python - ValueError:列集合中已存在名称“主题标识 [Individual/Pool]”。参数名称:值
- ios - 将 json 文件导入对象错误