【问题标题】:How to test Angular2 pipe in nodejs with mocha without karma如何在没有业力的情况下使用 mocha 在 nodejs 中测试 Angular2 管道
【发布时间】:2016-09-19 13:15:48
【问题描述】:

我希望能够完全在 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,但是它仍然不起作用...

无论如何,有没有办法在 nodejs 中使用 mocha 测试 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));
  }
}

【问题讨论】:

  • 我做了类似的工作:import "reflect-metadata";

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


【解决方案1】:

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

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    相关资源
    最近更新 更多