如何使用没有karma的mocha测试nodejs中的Angular2管道

时间:2016-09-19 13:15:49

标签: node.js unit-testing angular angular2-testing

我希望能够纯粹在nodejs环境中测试Angular2管道,而不包括karma等。

可以使用typescript文件作为mocha的测试套件

https://templecoding.com/blog/2016/05/05/unit-testing-with-typescript-and-mocha/

但是当我有一个import {Pipe} from '@angular/core'它给了我

/Users/foo/node_modules/@angular/core/src/util/decorators.js:173
        throw 'reflect-metadata shim is required when using class decorators';
        ^
reflect-metadata shim is required when using class decorators

即使我在我的测试文件中写require('reflect-metadata'),它仍然会出现相同的错误。

Angular内部有这个检查:

(function checkReflect() {
    if (!(Reflect && Reflect.getMetadata)) {
        throw 'reflect-metadata shim is required when using class decorators';
    }
})();

在需要reflect-matadata之后,我确实在全局对象上有Reflect,但它仍然不起作用......

无论如何,有没有办法用mocha?

测试nodejs中的Angular管道purley

我正在使用webpack捆绑应用程序,因此我在测试文件中需要的文件如下所示:

import {Pipe} from '@angular/core';

@Pipe({
    name: 'filterBy'
})

export class FilterByPipe {
  transform(items = [], prop, val) {
    return items.filter(someFilteringAlgorithm(prop, val));
  }
}

1 个答案:

答案 0 :(得分:0)

我还没有测试过管道,但这里有一篇帖子解释了如何使用Mocha在Node中测试Angular 2应用程序。但它使用Webpack而不是ts-node:Here

希望它可以提供帮助。