使用setup函数替代beforeEach函数进行Angular单元测试

时间:2022-07-25
本文章向大家介绍使用setup函数替代beforeEach函数进行Angular单元测试,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

具有依赖关系的Service源代码:

import { Injectable } from '@angular/core';

@Injectable()
export class MasterService {
  constructor(private valueService: ValueService) { }
  getValue() { return this.valueService.getValue(); }
}

export class ValueService {
  getValue() { return 'Jerry'; }
}

单元测试代码:

describe('MasterService using setup Instead of beforeEach', () => {
    it('#getValue should return stubbed value from a spy', () => {
        const { masterService, stubValue, valueServiceSpy } = setup();
        expect(masterService.getValue())
          .toBe(stubValue, 'service returned stub value');
        expect(valueServiceSpy.getValue.calls.count())
          .toBe(1, 'spy method was called once');
        expect(valueServiceSpy.getValue.calls.mostRecent().returnValue)
          .toBe(stubValue);
      });
});

测试结果: