gpt4 book ai didi

javascript - karma : Cannot read property * of undefined

转载 作者:行者123 更新时间:2023-12-05 06:36:48 27 4
gpt4 key购买 nike

我有一个我想测试的服务:

@Injectable()
export class AuthenticationService {
initialAuthStatus = this.authenticationStatus.first();

constructor(private adalService: AdalService,
private settingsProvider: SettingsProvider) { }


public get authenticationStatus(): any {
return this.adalService.userInfo.authenticationStatus;
}
}

以及服务测试:

describe('AuthenticationService', () => {
let mockAdalService: any;
let adalService: any;
let service: any;
let mockSettingsProvider: any;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
AuthenticationService,
AdalService,
{ provide: SettingsProvider, useClass: MockSettingsProvider },
{ provide: AdalService, useClass: MockAdalService }
]
});

mockAdalService = new MockAdalService();
adalService = new AdalService();
mockSettingsProvider = new MockSettingsProvider();
});

it('should be created', inject([AuthenticationService], (service: AuthenticationService) => {
expect(service).toBeTruthy();
}));
});

但是,测试失败并显示以下错误消息:

AuthenticationService should be created
TypeError: Cannot read property 'authenticationStatus' of undefined

跟认证状态的getter有关系,但是我想不通到底为什么会失败。

非常感谢任何帮助:)

最佳答案

在类的顶部,在这一行中,声明类属性 initialAuthStatus:

initialAuthStatus = this.authenticationStatus.first();

this.authenticationStatus 还没有初始化,给你错误信息。为了让它工作,将该行放在 ngOnInit() 方法中并将纯声明部分保留在类的顶部。

initialAuthStatus;
...
ngOnInit(){
this.initialAuthStatus = this.authenticationStatus;
}
...
...

关于javascript - karma : Cannot read property * of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48825888/

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