javascript - Sinon沙箱存根导出的异步功能不起作用
问题描述
我有以下使用 Sinon 沙箱存根的测试代码
索引.ts
export * from './init.actions';
初始化动作.ts
import { ModuleAnswer } from '../models/choice';
import { init } from '../templates/config';
import { moduleQuestion } from '../questions';
export async function initActions(): Promise<any> {
const moduleAnswer: ModuleAnswer = await moduleQuestion();
return init(moduleAnswer.name);
}
init.actions.spec
import sinon from 'sinon';
import { expect } from 'chai';
import * as questions from '../questions';
import { ModuleAnswer, ModuleValue } from '../models/choice';
describe('src/actions/init.actions', () => {
let sandbox: sinon.SinonSandbox;
let moduleQuestionStub: sinon.SinonStub;
const mockAnswer: ModuleAnswer = {
name: ModuleValue.CORE,
}
beforeEach(() => {
sandbox = sinon.createSandbox();
});
afterEach(() => {
sandbox.restore();
});
it('should always call mandatory questions', async () => {
moduleQuestionStub = sandbox.stub(questions, 'moduleQuestion').resolves(mockAnswer);
await initActions();
expect(moduleQuestionStub).to.be.called;
});
});
.mocharc.js
'use strict';
module.exports = {
diff: true,
extension: ['ts'],
package: './package.json',
slow: 75,
recursive: true,
require: ['ts-node/register', 'test/mocha.require.ts'],
reporter: 'spec',
spec: 'src/**/*.spec.ts',
};
测试/mocha.require.ts
require('sinon');
require('chai').use(require('sinon-chai'));
当我运行时,console.log(moduleQuestionStub);
我得到[Function: functionStub]
了结果,所以存根似乎在测试本身中返回
当我运行测试时,异步函数moduleQuestion
没有被存根。为什么会这样?
解决方案
推荐阅读
- python - 根据输入值对python字典进行排序?
- sql - 我想显示大于 20 的工作时间
- angular - 如何在运行角度应用程序时运行命令提示符命令?
- php - 如何在 PHP restapi 文件中设置 favicon 图标
- c# - 将字节数组数据读入对象的正确方法是什么
- sql - INTERVAL '1' DAY 是否总是等于 INTERVAL '24' HOURS?
- go - 使用 go 模块导入分叉包时出错
- crash - Javascript 无限递归函数在 Android 10 上崩溃 Chromium 50 ARM64 lib
- apache-spark - AWS Glue 作业抛出 java.lang.OutOfMemoryError:Java 堆空间
- oracle-apex - Oracle Apex 列值条件显示