我正在使用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
{User
mockservic
E} from './
mocks/user
mock.
service';
import
{User
servic
E} from '../shared/user/user.
service';
import
{in
ject,beforeEachProviders,it,describe,expect,beforeEach,async} from '@angular/core/tes
Ting';
import
{ TESTComponentBuilder } from '@angular/compiler/tes
Ting';
import
{provid
E} from '@angular/core';
describe('Login Component',() =>
{
let user
mockservice;
beforeEachProviders(() => [
TESTComponentBuilder]
);
beforeEachProviders(() => [provide(User
service,
{ useClass: user
mockservice })]
);
it('Should perform the login',in
ject([
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/exception
s.js
:17:32
AbstractProviderError@file:///app/tns_modules/@angular/core/src/di/reflective_exception
s.js:39:20
NoProviderError@file:///app/tns_modules/@angular/core/src/di/reflective_exception
s.js:75:20
_throwOrNull@file:///app/tns_modules/@angular/core/src/di/reflective_in
jector.js:776:62
initComponent@file:///app/tns_modules/@angular/compiler/tes
Ting/
test_componen
T_Builder.js:296:60
file:///app/tests/login.component.test.js
:14:24
file:///app/tns_modules/@angular/core/tes
Ting/tes
Ting.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-mode
l.js:216:23
file:///app/tns_modules/nativescript-unit-test-runner/main-view-mode
l.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
anon
ymous@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
{Pag
E} from 'ui/page'
import
{User} from "../../shared/user/user";
import
{User
servic
E} from "../../shared/user/user.
service";
@Component(
{
SELEctor: "login",providers: [User
service],templateUrl: "pages/login/login.html",styleUrls: ["pages/login/login-common.css"]
})
export class LoginComponent implements OnInit
{
userName:
String;
user
password:
String;
constructor(private user
service: User
service,private router: Router,private page: Pag
E) {
}
login()
{
let user = new User(thi
s.username,thi
S.User
password
);
thi
S.User
service.login(user)
.subscribe(
data => thi
s.router.navigate(['Home']),error => alert("Error on login.
check your credential
s.")
);
}
ngOnInit()
{
thi
s.page.actionBarHidden = true;
if (thi
S.User
service.isLogged())
{
thi
s.router.navigate(["Home"]
);
}
}
}
@H_
874_5@任何人都可以提供有关如何
解决此
错误并继续我的测试的线索吗?
提前致谢.