7
非常に基本的なジャスミンテストでTypeScriptアプリケーションをセットアップしたAngular2があります。私は自分のパイプの1つをテストしたい。ジャスミンでAngular2/TypeScriptパイプをテストする
lpad.pipe.ts HTMLテンプレートで
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
name: 'lpad'
})
export class LPadPipe implements PipeTransform {
transform(value: any, args: string[]): any {
let pad = args[0];
return (pad + value).slice(-pad.length);
}
}
用法:
{{size.SizeCode | lpad:['0000']}}
lpad.pipe.spec.ts - (動作しない)私のテスト
import { LPadPipe } from './lpad.pipe';
describe('LPadPipe'),() => {
let pipe: LPadPipe;
beforeEach(() => {
pipe = new LPadPipe();
});
it('transforms "1" to "0001"',() => {
let value: any = "1";
let args: string[] = ['0000'];
expect(pipe.transform(value, args)).ToEqual('0001')
});
}
エラーメッセージ:
Error: TypeError: Cannot read property 'length' of undefined(…)
問題は私のテストの "価値"と "args"にあると思います。任意のアイデアを解決する方法?
あなたは100%正しいです。ありがとうございました。私はまたToEqual( '0001') "toEqual( '0001')"にする必要があります別のタイプミスを持っていた。それは今働いている。 –
+1これはテストで役に立ちましたが、On Angular v4 +パイプがpipe.transform(value、arg1、arg2、arg3 ....)のように別々に引数を受け取ることを指摘するには、 –