gpt4 book ai didi

angular - Angular 5.2 测试中的 Jasmine 3 错误

转载 作者:太空狗 更新时间:2023-10-29 18:12:41 26 4
gpt4 key购买 nike

我在运行 ng test 后遇到了一些错误,我在升级我的所有包后得到了这个错误,这里是版本:

{
"@angular/animations": "^5.2.0",
"@angular/common": "^5.2.0",
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0",
"@angular/forms": "^5.2.0",
"@angular/http": "^5.2.0",
...
"zone.js": "^0.8.19"
}

和开发依赖

"jasmine-core": "~3.1.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.0",
"karma-chrome-launcher": "~2.2.0"

我遇到了这个错误:

"message": "An error was thrown in afterAll\n[object ErrorEvent]", "str": "An error was thrown in afterAll\n[object ErrorEvent]"

karma screenshot

我所有的测试都非常简单,比如:

import { async, TestBed  } from '@angular/core/testing';
import { UserInmailComponent } from './user-inmail.component';

describe('Component: UserInmail', () => {
it('should create an instance', () => {
const component = new UserInmailComponent();
expect(component).toBeTruthy();
});
});

我不认为我的测试文件导致了问题。

最佳答案

即使使用“jasmine-core v2.8.0”,我在几个单元测试中也遇到了此错误消息的问题。经过一些研究后,我能够重现它并发现当您使用缺少必要变量(在我的例子中 > observables)的模拟或 stub 时会发生这种情况。

例如,如果您像这样初始化您的 TestBed:

TestBed.configureTestingModule({
declarations: [HeaderComponent],
imports: [BrowserModule],
providers: [
{provide: AuthService, useClass: AuthServiceStub}
]
})

并且您在 AuthService 中有一个 observable,它以某种方式在您的 HeaderComponent 中使用,但是您忘记在您的“AuthServiceStub”中定义这个 observable 那么它将导致“在 afterAll\n[object ErrorEvent] 中抛出错误” 输出。

这是 jasmine/karma 的一个非常令人困惑的行为,因为它没有给你任何关于哪里出了问题的提示。在我看来,它应该抛出空指针异常,因为该属性未在 stub 内部定义。

关于angular - Angular 5.2 测试中的 Jasmine 3 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49731617/

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