gpt4 book ai didi

angular - AngularFireAuth 的 Karma 测试失败

转载 作者:行者123 更新时间:2023-12-02 18:11:52 24 4
gpt4 key购买 nike

我已经使用 AngularFire2 使用 jasmine/karma 为我的 Angular2 Web 应用程序创建了测试用例,但遇到了一个奇怪的错误,我无法调试。当我运行测试(检查应用程序组件是否存在)时,出现错误

失败:app.auth 不是函数
在新的 AngularFireAuth (http://localhost:9876/_karma_webpack_/webpack:/C:/path/to/project/node_modules/angularfire2/auth/auth.js:11:1)

查看 AngularFire2 文件本身,它看起来像是试图为它正在创建的当前应用程序分配一个新的身份验证系统,但相同的代码对于我正在处理的其他 Angular2 项目运行良好。 AngularFire2 的版本是 4.0.0,Firebase 的版本是 4.4.0。

最佳答案

我在自动创建的效果测试中遇到了同样的问题,并解决了创建 stub 的问题:

const AngularFireMocks = {
auth: Observable.of({ uid: 'ABC123' })
};

在我的测试提供程序中我输入:

{ provide: AngularFireAuth, useValue: AngularFireMocks },

完整代码(为效果测试):

import {TestBed, inject} from '@angular/core/testing';
import {provideMockActions} from '@ngrx/effects/testing';
import {BehaviorSubject, Observable, of} from 'rxjs';

import {AuthEffects} from './auth.effects';
import {RouterModule} from '@angular/router';
import {RouterTestingModule} from '@angular/router/testing';
import {AngularFireAuth} from '@angular/fire/auth';

const AngularFireMocks = {
auth: of({ uid: 'ABC123' })
};

describe('AuthEffects', () => {
let actions$: Observable<any>;
let effects: AuthEffects;

beforeEach(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule],
providers: [
AuthEffects,
{ provide: AngularFireAuth, useValue: AngularFireMocks },
provideMockActions(() => actions$)
]
});

effects = TestBed.get(AuthEffects);
});

it('should be created', () => {
expect(effects).toBeTruthy();
});
});

关于angular - AngularFireAuth 的 Karma 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46675988/

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