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 パイプ 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 アプリケーションをテストする方法を説明する投稿があります。ただし、ts-node の代わりに Webpack を使用します

それが役立つことを願っています。

于 2016-12-27T22:26:08.970 に答える