如何模拟全局导出的函数

时间:2019-12-18 13:17:53

标签: angular typescript unit-testing karma-runner

我正在针对我的Angular组件编写业力单元测试。我遇到了一种情况,我不知道如何进行。我在Google上搜索并没有发现...。

在另一个文件中,我定义了一个全局导出的函数:

export function findServices(
    serviceType: OptionValue | undefined,
    procedureCode: ProcedureCode | undefined,
    state: ServiceProcedureAuthorizationState
): ServiceProcedureAuthorizationService[] {
}

可以说它使用商店中的状态来返回此查询的答案。我不想为我的单元测试设置所有这些。我想以某种方式嘲笑它。

这是我的角度组件中的调用。

private setAuthState(group: SpServiceGroup, authorizationState: ServiceProcedureAuthorizationState) {
    const services: ServiceProcedureAuthorizationService[] = findServices(
        group.serviceType,
        group.procedureCode,
        authorizationState
    );

我该如何嘲笑?

有人指出尝试使用Global variables in Karma test runner,所以我尝试在测试文件中创建一个函数:

export function findServices(
    serviceType: OptionValue | undefined,
    procedureCode: ProcedureCode | undefined,
    state: ServiceProcedureAuthorizationState
): ServiceProcedureAuthorizationService[] {
    console.log('returning services');
    return services;
}

但是它将继续从生产文件运行该文件。所以这不是解决方案。

0 个答案:

没有答案