【问题标题】:Angular - How can I mock an external function in a unit test?Angular - 如何在单元测试中模拟外部函数?
【发布时间】:2020-10-27 05:56:44
【问题描述】:

我正在尝试为依赖于导入函数的函数编写角度单元测试 - 如何编写模拟导入函数结果的单元测试?我的功能是:

import { DependentMethod } from './dependentMethod';

export function doSomething() {
  const dependentResults = DependentMethod(); // DependentMethod makes an http call and returns the result
  return dependentResults;
}

在这种情况下,我想测试doSomething 并模拟DependentMethod 函数。当我之前尝试模拟一些东西时,我在类方法上使用了spy,但我不确定在这种情况下如何处理它。任何帮助将不胜感激!

【问题讨论】:

    标签: javascript angular unit-testing jasmine


    【解决方案1】:

    你可以试试下面的方法,

    import { dependent } from './dependentLibrary'; 
    
    
    describe('yourCoponent', () => {
      let component: yourComponent;
      let service : dependentService;
    
      beforeEach(() => {
        service = new dependent(null); // if your service has further dependency
        component = new yourComponent(service);
      });
    
      it('should perform test', () => {
        // Arrange part --> 
        spyOn(service, 'dependentMethod').and.callFake(() => {
          return Observable.from([ [1,2,3] ]); // return your mock data
        });
    
        //Act part
        component.ngOnInit();
    
        //Assert
        expect(component.testable.action).toBe(value);
    
      });
    

    【讨论】:

      猜你喜欢
      • 2023-02-19
      • 2021-03-12
      • 2018-11-24
      • 2018-11-09
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      相关资源
      最近更新 更多