1

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

可以使用 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 pipe purley?

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

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

@Pipe({
    name: 'filterBy'
})

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

1 回答 1

0

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

希望它可以帮助。

于 2016-12-27T22:26:08.970 回答