单元测试Angular 2服务在导入角度模块时抛出错误

时间:2016-01-15 14:43:38

标签: javascript unit-testing typescript angular

我实际上正在学习angular 2,我正在构建一个简单的应用程序,其中我有一个MathComponent和一个MathCustom计算器。

以下是两个类:

组件:

import {Component} from 'angular2/core';
import {MathCustom} from './math.js';

@Component({
  selector: 'math-calcul',
  template: '<h1>Simple math calculator</h1>' +
  '<input type="number" placeholder="a"  [(ngModel)]="a"/>' +
  '<input type="number" placeholder="b"  [(ngModel)]="b"/>' +
  '<button (click)="addition(a,b)">Calculate</button>' +
  ' <br/> = {{result}}',
  providers: [MathCustom]
})
export class MathComponent {
  public result = 0;

  constructor(math: MathCustom) {
    this.math = math;
  }

  addition(a: Number, b: Number) {
    this.result = this.math.add(a, b);
  }
}

服务:

import {Injectable} from 'angular2/core';

@Injectable()
export class MathCustom {
  add(a, b) {
    return a + b;
  }
}

以下是服务测试:

import {MathCustom} from '../../src/math/math.js';

let service = new MathCustom();

    describe('MathCustom', () => {
      describe('MathCustom#add', () => {

        it('expects 1 + 1 to equals 2', () => {
          expect(service.add(1, 1)).toEqual(2);
        });

        it('expects 2 + 3 to equals 5', () => {
          expect(service.add(2, 3)).toEqual(5);
        });

        it('expects 10 + 10 to equals 20', () => {
          expect(service.add(10, 10)).toEqual(20);
        });
      });
    });

问题

我的问题是,在我的服务(MathCustom)类中,我从angular 2 node_module注入了一些内容:

  

从&#39; angular2 / core&#39;;

导入{Injectable}

当我尝试运行我的测试时,这会引发我的错误:

  

错误:加载http://127.0.0.1:3000/app/test/angular2/core(...)

时出现XHR错误(404 Not Found)

实际上,它是正常的,因为我的angular2 / core位于项目的根目录,而不是测试文件夹中。

我的项目结构:

enter image description here

如何避免此导入行为?

0 个答案:

没有答案