Ich versuche Angular 2 Typescript Code mit Karma zu testen. Ich habe zwei Dummy-Tests. Man testet, ob 'wahr' gleich 'wahr' ist, der andere ruft eine Methode von AppComponent auf, die eine fest codierte Zeichenkette zurückgibt. Wenn ich den zweiten Testfall entferne und nur den ersten durch npm test
führe, wird es den Browser öffnen, den Test ausführen und es wird funktionieren. Wenn ich den zweiten Test hinzufüge, gibt es mir einen Fehler. AppComponent.tsLauftests für Angular 2 für Typescript mit Karma
///<reference path="../../node_modules/angular2/typings/browser.d.ts"/>
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
templateUrl: 'partials/app.html',
})
export class AppComponent {
response(text:string):any {
return 'hello';
}
}
AppComponent.spec.ts
/// <reference path="../../node_modules/angular2/typings/browser.d.ts" />
/// <reference path="../../typings/main/ambient/jasmine/index.d.ts" />
import {it, describe, expect, beforeEach, inject} from 'angular2/testing';
import {AppComponent} from "./app.component";
describe('First Test',() => {
let component: AppComponent;
it('Value of testvar should be test',() => {
expect(true).toEqual(true);
});
});
describe('Second Test',() => {
let component = new AppComponent();
it('value must be true',() => {
expect(component.response('hi').toEqual('hello'));
});
});
Als ich npm test
laufen wird es den Browser starten und es wird Fehler. Konsolenausgabe ist hier unten:
wlan-145-94-194-94:folder ruben$ npm test
> [email protected] pretest /Users/ruben/dev/folder
> gulp pretest
(node:3251) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
[15:12:54] Using gulpfile ~/dev/folder/gulpfile.js
[15:12:54] Starting 'copylibs'...
[15:12:54] Starting 'typescript'...
[15:12:58] Finished 'copylibs' after 4.23 s
[15:12:58] Finished 'typescript' after 4.26 s
[15:12:58] Starting 'pretest'...
[15:12:58] Finished 'pretest' after 115 μs
> [email protected] test /Users/ruben/dev/folder
> karma start karma.conf.js
29 04 2016 15:13:00.742:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/
29 04 2016 15:13:00.763:INFO [launcher]: Starting browser Firefox
29 04 2016 15:13:04.603:INFO [Firefox 46.0.0 (Mac OS X 10.11.0)]: Connected on socket /#IPI7AaPJBP7EA1i4AAAA with id 84025354
29 04 2016 15:13:05.403:WARN [web-server]: 404: /base/builds/development/js/app.component
Missing error handler on `socket`.
TypeError: (msg || "").replace is not a function
at /Users/ruben/dev/folder/node_modules/karma/lib/reporter.js:45:23
at onBrowserError (/Users/ruben/dev/folder/node_modules/karma/lib/reporters/base.js:58:60)
at .<anonymous> (/Users/ruben/dev/folder/node_modules/karma/lib/events.js:13:22)
at emitTwo (events.js:111:20)
at emit (events.js:191:7)
at onKarmaError (/Users/ruben/dev/folder/node_modules/karma/lib/browser.js:95:13)
at Socket.<anonymous> (/Users/ruben/dev/folder/node_modules/karma/lib/events.js:13:22)
at emitOne (events.js:101:20)
at Socket.emit (events.js:188:7)
at Socket.onevent (/Users/ruben/dev/folder/node_modules/socket.io/lib/socket.js:335:8)
at Socket.onpacket (/Users/ruben/dev/folder/node_modules/socket.io/lib/socket.js:295:12)
at Client.ondecoded (/Users/ruben/dev/folder/node_modules/socket.io/lib/client.js:193:14)
at Decoder.Emitter.emit (/Users/ruben/dev/folder/node_modules/component-emitter/index.js:134:20)
at Decoder.add (/Users/ruben/dev/folder/node_modules/socket.io-parser/index.js:247:12)
at Client.ondata (/Users/ruben/dev/folder/node_modules/socket.io/lib/client.js:175:18)
at emitOne (events.js:96:13)
29 04 2016 15:13:07.475:WARN [Firefox 46.0.0 (Mac OS X 10.11.0)]: Disconnected (1 times)
Firefox 46.0.0 (Mac OS X 10.11.0): Executed 0 of 0 DISCONNECTED (2.876 secs/0 secs)
npm ERR! Test failed. See above for more details.
Das gibt mir immer noch den gleichen Fehler: 02 05 2016 14.40: 58.533: WARN [Webserver]: 404: /base/builds/development/js/app.component Fehlender Fehlerhandler für 'Socket'. TypeError: (msg || "") .replace ist keine Funktion – Ruben