gpt4 book ai didi

angular - 如何在测试中模拟 angular 5 中的 js 导入?

转载 作者:行者123 更新时间:2023-11-28 21:38:19 26 4
gpt4 key购买 nike

我正在尝试为使用 js 导入的 Angular 5 应用程序编写测试,我一直在进行研究,但我看不出如何模拟 js 导入。在测试中,我只想检查是否已使用 spyOn 调用了 bar() 方法,但不知道如何执行此操作。

import {foo} from 'fooProject';

export class Component {
constructor(){}

trigger() {
foo.bar();
}
}

最佳答案

一个选项是您可以为 foo 创建工厂方法,然后在模块的提供程序中注册该工厂。然后,在您的单元测试中,您可以注入(inject)任何您想要的东西并伪造成员。

import {foo} from 'fooProject';

export function fooFactory(): any {
return foo;
}

@NgModule({
providers: [{ provide: 'Foo', useFactory: fooFactory }]
})
export class YourModule { }
import { Inject, Component } from '@angular/core';

export class YourComponent {
constructor(@Inject('Foo') private foo:any){}

trigger() {
this.foo.bar();
}
}

关于angular - 如何在测试中模拟 angular 5 中的 js 导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55301546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com