如何解决sinon 存根 ESM 项目中的最佳实践
我花了很多时间试图对这件事有一个合理的理解。不幸的是,大多数问题都非常针对个别用例,并没有提供可遵循的一般指南。在文档中也找不到任何直接的答案。
问题:
我只是想这样做:
// helper.ts
import fs from 'fs';
import util from 'util'
const accesspromisfied = util.promisfy(fs.access);
async function access(path:string){
try{
await accesspromisfied(path);
return true;
} catch {
return false;
}
}
async function someFunction(){
try{
let result = await access()
if(result){
//some more logic here
.
.
return true;
}
}catch{
return false;
}
}
export default {access,someFunction}
// helper.spec.ts
import * as helper from './helper.ts';
describe("The test",() => {
afterEach(() => {
sinon.restore();
})
it("Should JUST work like we all wish",async () => {
// stub acccess to resolve false
const stubAccess = sinon.stub(helper,'access').resolve(false);
// rest of test code
})
})
问题
最后,请注意,我在我的项目中使用了 nextjs,ESM!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。