Ich habe dieses Tutorial gefolgt für eine Angular 2 App testen: https://angular.io/docs/ts/latest/guide/testing.htmlAngular 2 für Typoskript app Tests - Spezifikationen erscheinen mehrfach in Jasmin
Nach dem First app test
Abschnitt Finishing und ging zu unit-tests.html
sah ich meine spec Berichte mehrere erscheinen Zeiten:
Obwohl ich keine Änderungen an den Tutorial-Code nicht gemacht habe, für eine schnelle Referenz ist hier meine Einheit-tests.html:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Ng App Unit Tests</title>
<link rel="stylesheet" href="node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
<script src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>
</head>
<body>
<!-- #1. add the system.js library -->
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script>
// #2. Configure systemjs to use the .js extension
// for imports from the app folder
System.config({
packages: {
'app': {defaultExtension: 'js'}
}
});
// #3. Import the spec file explicitly
System.import('app/hero.spec')
// #4. wait for all imports to load ...
// then re-execute `window.onload` which
// triggers the Jasmine test-runner start
// or explain what went wrong.
.then(window.onload)
.catch(console.error.bind(console));
</script>
</body>
</html>
hero.spec.ts
import {Hero} from './hero';
describe('Hero',() => {
it('has name',() => {
let hero:Hero = {id: 1, name: 'Super Cat'};
expect(hero.name).toEqual('Super Cat');
});
it('has id',() => {
let hero:Hero = {id: 1, name: 'Super Cat'};
expect(hero.id).toEqual(1);
});
});
Jede Idee, was falsch vielleicht ging?
Dieses Problem besteht immer noch, wenn für das Tutorial für Angular2.0.0-rc.5, d. H. Die Ergebnisse für die einfachen Tests für hero.ts sind verdreifacht. Beachten Sie, dass die nächste Testgruppe im Lernprogramm, d. H. Für die Datei my-exception.pipe.ts, die Ergebnisse nicht verdreifacht hat. Es ist also nicht einfach, dass alle Ergebnisse verdreifacht werden, nur einige.Ich nehme an, dass es etwas mit dem feinen Timing der Dinge zu tun hat, z. Das Timing, wenn einfache Tests abgeschlossen werden, oder wenn kompliziertere Tests, die etwas anderes erfordern (andere Downloads?), relativ zum Beispiel beendet werden, wenn das Browserfenster geladen ist und Jasmin wieder startet. –