javascript - 用 Angular Testing 服务的理想方法是什么?

标签 javascript angular unit-testing angular-test

<分区>

我是 Angular Testing 的新手,我想为我的服务创建测试。

问题是我的服务 (foo) 在其构造函数中注入(inject)了另一个服务 (bar)。

所以我应该创建一个 mock 到 bar?模拟酒吧内的每个功能?如果是这样,我需要为我导入的每个包都这样做吗?将我自己的函数编写为模拟?

最佳答案

您可以创建模拟/ stub 或使用 Jasmine spy 。

 export const jobServiceStub: Partial<JobService> = {
   getUser() {
     return {};
   }
 }

 describe('SampleService', () => {
  let service: SampleService;  

  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [        
        //replacing service with stub
        { provide: JobService, useValue: jobServiceStub },        
        UtilityService
      ]
    });
    service = TestBed.inject(SampleService);
  });
  

  it('should get all data', () => {
    const utilityService = TestBed.inject(UtilityService);    
    const spy = spyOn(utilityService, 'getValues').and.returnValue(2);    
  });
  
});

关于javascript - 用 Angular Testing 服务的理想方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65533896/

相关文章:

javascript - NodeJS 和用于搜索查询的嵌套函数

javascript - 使用 bootstrap-select 时使用 JQuery 启用/禁用选项

javascript - 如何使用 javascript 和 php 启用或禁用组合框中的值

javascript - 在 Angular 中监听自定义 DOM 事件

angular - 使用 GraphQl 的 Apollo 客户端时如何在 watchQuery 中使用加载属性

unit-testing - 为什么 gh-unit 优于 SenTestCase(在 Xcode4 中)?

javascript - 如何创建自动求和计算输入字段

css - Animate.css 和 Angular 4

java - 如何区分 "run all tests"和 "run just this test"?

ios - iOS 项目的单元测试