I am using Angular 2 RC 5 and wanna integrate Jasmine. Whenever I try to import @angular/core/testing I get an 404 http://localhost:3000/@angular/core/testing not found error. I tried to google it and everything but nothing helped. I followed the official Angular site to set up Jasmine.
package.json
{
"name": "angular2-quickstart",
"version": "1.0.0",
"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
"lite": "lite-server",
"postinstall": "typings install",
"tsc": "tsc",
"tsc:w": "tsc -w",
"typings": "typings",
"lite-server-test": "lite-server --config=liteserver-test-config.json",
"test": "tsc && concurrently \"npm run tsc:w\" \"npm run lite-server-test\" "
},
"license": "ISC",
"dependencies": {
"@angular/common": "2.0.0-rc.5",
"@angular/compiler": "2.0.0-rc.5",
"@angular/core": "2.0.0-rc.5",
"@angular/forms": "0.3.0",
"@angular/http": "2.0.0-rc.5",
"@angular/platform-browser": "2.0.0-rc.5",
"@angular/platform-browser-dynamic": "2.0.0-rc.5",
"@angular/router": "3.0.0-rc.1",
"@angular/router-deprecated": "2.0.0-rc.2",
"@angular/upgrade": "2.0.0-rc.5",
"systemjs": "0.19.27",
"core-js": "^2.4.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"angular2-in-memory-web-api": "0.0.15",
"bootstrap": "^3.3.6"
},
"devDependencies": {
"concurrently": "^2.0.0",
"jasmine-core": "2.4.1",
"lite-server": "^2.2.0",
"typescript": "^1.8.10",
"typings": "^1.0.4"
}
}
unit-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>
<script src="app/1st.spec.js"></script>
</head>
<body>
<script src="/node_modules/systemjs/dist/system.src.js"></script>
<script>
System.config({
packages: {
'app': {defaultExtension: 'js'}
}
});
System.import('app/1st.spec')
.then(window.onload)
.catch(console.error.bind(console));
</script>
</body>
</html>
my test file
import { Hero } from './hero';
import {TestBed, addProviders} from "@angular/core/testing";
let service: Hero;
describe('Hero', () => {
beforeEach(() => {
addProviders([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);
});
it('inject', () => {
expect(service.id).toBeNull();
});
});
Without using /core/testing it works fine.
Aucun commentaire:
Enregistrer un commentaire