Meine App hat viele Module mit vielen Komponenten und Diensten und anderen Angular2-Zeug.eckig 2 testen - Kann keine Komponente erstellen
Jetzt versuche ich TestBed Ansatz verwenden, um eine Einheit Tests mit Jasmin + Karma zu erstellen.
Ich habe einen Fehler beim Aufdecken des Proof of Concept. Ich habe einen Test für eine meiner Komponenten geschaffen, die wie folgt aussieht:
let myCompServiceStub = {} as MyComponentService;
let routerStub = {} as Router;
let globalServiceStub = {} as MyGlobalService;
describe('MyComponent',() => {
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
beforeEach(async(() => {
TestBed
.configureTestingModule({
imports: [MyModule],
providers: [
{ provide: MyComponentService, useValue: myCompServiceStub },
{ provide: Router, useValue: routerStub },
{ provide: MyGlobalService, useValue: globalServiceStub }
]
})
.compileComponents()
.then(() => {
fixture = TestBed.createComponent(MyComponent);
// component = fixture.componentInstance;
});
}));
it('test it',() => {
expect(true).toBe(true);
});
});
MyModule
eine Reihe von Einfuhren von anderen Modulen hat (die meisten von ihnen mir, aber es gibt auch CommonModule, MaterializeModule, FormsModule
Module bilden Winkel- und Materialise), die einige globale Komponenten definieren. Es hat auch eine MyComponentService
in Anbietern. Die importierten benutzerdefinierten Module haben keine bereitgestellten Dienste.
MyGlobalService
in AppComponent
zur Verfügung gestellt, die Hauptkomponente ist.
Wenn ich versuche, um die Tests zu laufen, bekomme ich einen Fehler:
PhantomJS 2.1.1 (Windows 8 0.0.0) MyComponent test it FAILED
[email protected]:8833:41
[email protected]:10715:50
[email protected]:8832:53
[email protected]:8709:58
[email protected]:8976:43
[email protected]:4098:31
karma-shim.js:4111:33
[email protected]:4466:13
[email protected]:9045:79
karma-shim.js:9081:32
Und ich bin wirklich auf es stecken, haben keine gute Ideen , was ich falsch mache?
Abhängigkeiten Meine Tests sieht aus wie:
"@angular/common": "~2.3.0",
"@angular/compiler": "~2.3.0",
"@angular/compiler-cli": "^2.3.1",
"@angular/core": "~2.3.0",
"@angular/forms": "~2.3.0",
"@angular/http": "~2.3.0",
"@angular/platform-browser": "~2.3.0",
"@angular/platform-browser-dynamic": "~2.3.0",
"@angular/platform-server": "^2.3.1",
"@angular/router": "~3.3.0",
"angular2-materialize": "6.3.0",
"karma": "1.1.2",
"karma-chrome-launcher": "^1.0.1",
"karma-coverage": "^1.0.0",
"karma-jasmine": "^1.0.2",
"karma-phantomjs-launcher": "^1.0.0",
"karma-remap-istanbul": "0.1.1",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "1.7.0",
"@types/jasmine": "^2.5.36",
"jasmine-core": "^2.3.4",
"jasmine-spec-reporter": "^2.4.0",
Hoppla, das war ein Tippfehler in Frage, nur um einige geheime Daten zu verstecken :) –