gpt4 book ai didi

angular - Angular 构造函数中的单元测试函数调用

转载 作者:行者123 更新时间:2023-12-05 06:35:38 25 4
gpt4 key购买 nike

我正在为 Angular 2+ 中的服务编写单元测试(请参阅下面的代码块)。我如何使用 Jasmine 框架实现这一目标?

declare var window: any;

@Injectable
export class Somename {

constructor() {
if (window.cordova) {
function1();
} else {
function2();
}
}

private function1() {
}

private function2() {
}
}

最佳答案

像这样的东西可能是骨架:

describe('ComponentExample', () => {
let component: ComponentExample;
let fixture: ComponentFixture<ComponentExample>;

beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ComponentExample ]
})
.compileComponents();
}));

beforeEach(() => {
fixture = TestBed.createComponent(ComponentExample);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
// Lunch cordova here
expect(component).toBeTruthy();
// Not lunch cordova here
expect(component).toBeTruthy();
});
});

这应该可以检查构造函数,我不知道如何使用 cordova,因为我没有使用它。但是你需要在打开或不打开窗口后期待组件。

我读了一些关于ngOnInit的东西,我认为没有必要测试构造函数。如果您初始化组件,您将测试构造函数,这里的问题是关于打开 cordova 的。使用 ng test --code-coverage 可以检查您是否覆盖了构造函数。这将生成一个目录 coverage,其中包含一个 index.html 文件,可以恢复所有代码行。并说你是否覆盖了某些行。

ngOnInit 最常用于在您的应用程序中执行路由时执行代码。如果您需要在组件或服务收费时做某事,这很有用。但这与本次测试没有区别。

关于angular - Angular 构造函数中的单元测试函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49655670/

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