Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angular – 单元测试:没有DirectiveResolver的提供者大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Angular2学习NativeScript,我为一个简单的组件编写了以下测试: @H_874_5@ @H_874_5@ @H_450_7@import 'nativescript-angular/application'; import 'reflect-Metadata'; import {LoginComponent} from '../pages/login/login.component'; import {UsermockservicE} from './mocks/usermock.service'; import {UserservicE} from '../shared/user/user.service'; import {inject,beforeEachProviders,it,describe,expect,beforeEach,async} from '@angular/core/tesTing'; import { TESTComponentBuilder } from '@angular/compiler/tesTing'; import {providE} from '@angular/core'; describe('Login Component',() => { let usermockservice; beforeEachProviders(() => [TESTComponentBuilder]); beforeEachProviders(() => [provide(Userservice,{ useClass: usermockservice })]); it('Should perform the login',inject([TESTComponentBuilder],(tcb: TESTComponentBuilder) => { tcb.createAsync(LoginComponent).then(fixture => { let component = fixture.nativeElement; console.log(component); expect(true).toBe(true); }); })); }); @H_874_5@但是,当我运行Nativescript测试运行器时,我有以下错误

@H_874_5@ @H_450_7@Error: No provider for DirectiveResolver! BaseException@file:///app/tns_modules/@angular/core/src/facade/exceptions.js:17:32 AbstractProviderError@file:///app/tns_modules/@angular/core/src/di/reflective_exceptions.js:39:20 NoProviderError@file:///app/tns_modules/@angular/core/src/di/reflective_exceptions.js:75:20 _throwOrNull@file:///app/tns_modules/@angular/core/src/di/reflective_injector.js:776:62 initComponent@file:///app/tns_modules/@angular/compiler/tesTing/test_componenT_Builder.js:296:60 file:///app/tests/login.component.test.js:14:24 file:///app/tns_modules/@angular/core/tesTing/tesTing.js:98:28 attemptAsync run execute queueRunnerFactory execute fn attemptAsync run execute queueRunnerFactory fn attemptAsync run execute queueRunnerFactory execute execute runTests@file:///app/tns_modules/nativescript-unit-test-runner/main-view-model.js:216:23 file:///app/tns_modules/nativescript-unit-test-runner/main-view-model.js:187:101 tick@file:///app/tns_modules/timer/timer.js:17:26 UIApplicationMain@[native code] start@file:///app/tns_modules/application/application.js:233:26 anonymous@file:///app/./tns_modules/nativescript-unit-test-runner/app.js:3:18 evaluate@[native code] moduleEvaluation@[native code] [native code] promiseReactionJob@[native code] @H_874_5@这是我试图测试的组件:

@H_874_5@ @H_450_7@import {Component,OnInit} from "@angular/core"; import {Router} from "@angular/router-deprecated"; import {PagE} from 'ui/page' import {User} from "../../shared/user/user"; import {UserservicE} from "../../shared/user/user.service"; @Component({ SELEctor: "login",providers: [Userservice],templateUrl: "pages/login/login.html",styleUrls: ["pages/login/login-common.css"] }) export class LoginComponent implements OnInit { userName: String; userpassword: String; constructor(private userservice: Userservice,private router: Router,private page: PagE) { } login() { let user = new User(this.username,thiS.Userpassword); thiS.Userservice.login(user) .subscribe( data => this.router.navigate(['Home']),error => alert("Error on login. check your credentials.") ); } ngOnInit() { this.page.actionBarHidden = true; if (thiS.Userservice.isLogged()) { this.router.navigate(["Home"]); } } } @H_874_5@任何人都可以提供有关如何解决错误并继续我的测试的线索吗?
提前致谢.

解决方法

你有没有尝试过 @H_874_5@ @H_874_5@ @H_450_7@beforeEachProviders(() => [TESTComponentBuilder,provide(Userservice,{ useClass: usermockservice })]); @H_874_5@代替

@H_874_5@ @H_450_7@beforeEachProviders(() => [TESTComponentBuilder]); beforeEachProviders(() => [provide(Userservice,{ useClass: usermockservice })]);

大佬总结

以上是大佬教程为你收集整理的angular – 单元测试:没有DirectiveResolver的提供者全部内容,希望文章能够帮你解决angular – 单元测试:没有DirectiveResolver的提供者所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。