我为我的loginComponent
创建了一个login.component.spec.ts
。但是,当我运行 tns 测试安卓时,TestBed.createComponent(LoginComponent)
失败了。错误如下:
原生脚本/29 (10;安卓SDK为x86构建) 登录组件 应创建应用程序失败
失败:静态注入器错误(动态测试模块)[测试组件渲染器 -> InjectionToken DocumentToken]:
StaticInjectorError(Platform: core)[TestComponentRenderer ->InjectionToken DocumentToken]:未定义文档
错误属性: 对象({ ngTempTokenPath: null, ngTokenPath: [ 'TestComponentRenderer', InjectionToken DocumentToken ] }) at Jasmine
我在网站上找不到有关我的问题的任何结果。感谢您的帮助。
我试图包含http模块,因为有人说未定义的文档可能是因为http。但是,它仍然不起作用。
这是login.component.spec.ts
的代码:
import "core-js";
import "zone.js/dist/zone";
import "zone.js/dist/proxy";
import "zone.js/dist/sync-test";
import "zone.js/dist/async-test";
import "zone.js/dist/fake-async-test";
import "zone.js/dist/jasmine-patch";
import "zone.js/dist/long-stack-trace-zone";
import { ComponentFixture, async, TestBed} from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { NO_ERRORS_SCHEMA, DebugElement} from '@angular/core';
import { RouterTestingModule } from '@angular/router/testing';
import { Router } from '@angular/router';
import { ActivatedRoute } from "@angular/router";
import { RouterExtensions } from "nativescript-angular/router";
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting }
from '@angular/platform-browser-dynamic/testing';
import { LoginComponent } from '~/pages/login/login.component';
describe ('LoginComponent', () => {
beforeEach(async( () => {
TestBed.resetTestEnvironment();
TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
TestBed.configureTestingModule({
imports: [
RouterTestingModule
],
providers: [],
declarations: [
LoginComponent
],
schemas: [
NO_ERRORS_SCHEMA]
}).compileComponents();
}));
it('Should create the app', async( () => {
const fixture = TestBed.createComponent(LoginComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
}));
});
您正在使用对 {N} 无效的BrowserDynamicTestingModule
。您应该使用NativeScriptTestingModule
形式nativescript-angular/testing
。