2016-06-14 26 views
7
ile Angular2/TypeScript borusunu test etme

Çok temel Jasmine testleri ile bir Tipik TipScript uygulama kurulumu olan bir Angular2 var. Borularımdan birini test etmek istiyorum. html şablonunaJasmine

lpad.pipe.ts

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); 
    } 
} 

kullanımı:

{{size.SizeCode | lpad:['0000']}} 

lpad.pipe.spec.ts - My testi (çalışmıyor)

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') 
    }); 

} 

Hata iletisi:

Error: TypeError: Cannot read property 'length' of undefined(…) 

Sorunun benim testimin "değeri" ve "args" ile olduğunu düşünüyorum. Herhangi bir fikir nasıl çözülür? Eğer hatalar var çünkü describe yöntemi kullanılırken

cevap

8

Bu açıklanmıştır:

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') 
    }); 

} // <---------------- 

yerine aşağıdaki kullanmalıdır:

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') 
    }); 

}); // <---------------- 
+3

Sen% 100 doğru konum. Teşekkür ederim. Ayrıca başka bir yazım hatası vardı "ToEqual ('0001')" olmalıdır "toEqual ('0001')". Şimdi çalışıyor. –

+0

+1 bu bir test üzerinde bana yardımcı oldu ve sadece Açık Angular v4 + borularının pipe.transform (value, arg1, arg2, arg3 ....) gibi bağımsız değişkenler alabildiğini göstermek için –