deepthan / blog-angular

Angular 笔记
280 stars 58 forks source link

【Angular】单元测试案例 #143

Open deepthan opened 3 years ago

deepthan commented 3 years ago

单元测试案例

管道

number-to-zh.pipe.ts

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({name: 'numberToZh'})
export class numberToZhPipe implements PipeTransform {
  transform(value: any, ...args: any[]) {
    switch(value) {
      case '1': 
        return '一';
      case '2':
        return '二';
      case '3':
        return '三';
      default: throw new Error(`无效状态码${value}`);
    }
  }
}

将管道在模块中注册下

import { numberToZhPipe } from "./number-to-zh.pipe";

@NgModule({
  ...
  declarations: [numberToZhPipe],
})
export class AppModule {}

然后给其写单元测试

import { numberToZhPipe } from './number-to-zh.pipe';

const pipe = new numberToZhPipe();

it('转换管道应该被创建', ()=>{
    expect(pipe).not.toBeUndefined();
})

it('1应该返回一', ()=>{
    expect(pipe.transform('1')).toEqual('一');
})

it('2应该返回二', ()=>{
    expect(pipe.transform('2')).toEqual('二');
})

it('3应该返回三', ()=>{
    expect(pipe.transform('3')).toEqual('三');
})