我有一个混合的AngularJs / Angular应用程序。应用程序的引导程序在我的AppModule中的Angular应用程序中使用ngDoBootstrap()完成;像这样:
ngDoBootstrap() {
this.upgrade.bootstrap(document.body, ['my.angularjs.app']);
}
我想对此进行单元测试,以确保完成引导程序。 但我似乎无法在官方文档中找到适当的单元测试模块文档(https://angular.io/guide/testing)
PS:上面的代码只是一个小例子。我在构造函数中做了很多事情,我想测试一下。
有人已经这样做了吗?感谢您的帮助
编辑: 这是我到目前为止的测试:
import { TestBed, inject } from '@angular/core/testing';
import {AppModule} from "./app.module";
describe('AppModule', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppModule]
});
});
it('should call ngDoBootstrap', () => {
spyOn(AppModule, 'ngDoBootstrap');
AppModule.ngDoBootstrap();
expect(AppModule.AppModule).toHaveBeenCalled();
});
});
当我运行测试时,我遇到了这个错误
error TS2345: Argument of type '"ngDoBootstrap"' is not assignable to parameter of type '"prototype"'.
error TS2339: Property 'ngDoBootstrap' does not exist on type 'typeof AppModule'.
error TS2339: Property 'AppModule' does not exist on type 'typeof AppModule'.
答案 0 :(得分:0)
在你的测试套件中你尝试过这样的事情:
spyOn(upgrade, 'bootstrap')
component.ngDoBootstrap()
expect(component.upgrade.bootstrap).toHaveBeenCalled()
upgrade
是我认为合适的服务吗?