Модульное тестирование компонента фильтра с использованием Jasmine - PullRequest
0 голосов
/ 02 апреля 2019

Я создал компонент для фильтрации переданной ему строки.Я пытаюсь написать для него модульный тест, и он выдает ошибку, связанную с конструктором.Пожалуйста, помогите мне.

import angular from 'angular';
import filter from "./format-string.filter"

angular
.module( "filters.truncateString", [] )
.filter( "truncateString", () => filter );

class TruncateString {
 filter(val){
    const accValue = val.split('YYYY');
    const firstValue= accValue[1].replace(/^(|-?\d+)$/, '');
    return `${accValue[0]} ${firstValue} AAA`;
 }
}

export default TruncateString .filter;`

Тест, который я написал -

import angular from 'angular';
import 'angular-mocks';
import TruncateString from './format-string.filter';
describe('TruncateString filter', () => {
let controller, filter;

beforeEach(angular.mock.module('filters.TruncateString'));
controller = new TruncateString();

beforeEach(inject(function(_$filter_){
    filter = _$filter_;
}));

it('Checking whether the function is returning formatted string', () => {
    const result = controller.filter('123YYY3213123');
    expect(result).toHaveBeenCalledWith('123 YYY ... 23');
});
});

1 Ответ

1 голос
/ 02 апреля 2019

Вот как вы можете протестировать фильтр

describe('Test My Filter', () => {
  let $filter;

  beforeEach(() => {
    module('filters.TruncateString');

    inject((_$filter_) => {
      $filter = _$filter_;
    });
  });

  it('should test filter behavior', () => {
    let result = $filter('truncateString')('testval');
    expect(result).toEqual('expectedval');
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...