Angular 2+单元测试管

时间:2019-01-10 12:14:14

标签: angular unit-testing

我有烟斗

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

@Pipe({
  name: 'filterArrayPipe'
})
export class FilterArrayPipe implements PipeTransform {
  transform(value: any, config: any, q: string) {
    if (config && q) {
      return value.filter(result => {
        return config.some(type => result[type].toString().toLowerCase().indexOf(q) > -1);
      });
    } else {
      return value;
    }
  }
}

现在我要进行单元测试

import { FilterArrayPipe } from './filter-array.pipe';
describe('Pipe: FilterArray Pipe', () => {
  it('providing search value should return true', () => {
      const pipe = new FilterArrayPipe();

      expect(pipe.transform([{id: 123}, {id: 456}], ['id'], '456'))
        .toBe([{id: 456}]);
  });
});

但是我收到以下错误

Expected [ Object({ id: 456 }) ] to be [ Object({ id: 456 }) ].

1 个答案:

答案 0 :(得分:1)

您应该使用toEqual进行比较。

expect(pipe.transform([{id: 123}, {id: 456}], ['id'], '456'))
        .toEqual([{id: 456}]);

有关更详细的答案,请参见toBe vs toEqual。与==和===相同。