无法读取未定义的属性“returnValue”

米克斯

我正在根据官方 Angular文档编写我的第一个单元测试

但是,当我尝试使用他们的示例时,我在尝试测试时遇到了上述错误。我环顾四周,但找不到有关此特定错误的任何信息。

我的尝试:

import { TestBed } from '@angular/core/testing';
import { HttpClient } from '@angular/common/http';

import { VService } from './vservice';

fdescribe('VService', () => {
 let VServiceSpy: jasmine.SpyObj<VService>;

 beforeEach(() => {
   const spy = jasmine.createSpyObj('VService', ['getAll']);

   TestBed.configureTestingModule({
     // this fixed an issue which is why i added it
     providers: [{ provide: HttpClient, useValue: spy }]
   });

   VServiceSpy = TestBed.get(VService);
 });

 it('should be created', () => {
   expect(VServiceSpy).toBeTruthy();
 });

 it('#getAll should return stubbed value from a spy', () => {
   const stubValue = [
     {
       id: '1',
       name: 'Repairs',
       number: '000000001',
       address: '1 Test Rd. Tampa, OH 44442',
       phoneNumber: '111-111-1111',
       emailAddress: '[email protected]'
     }
   ];
   // here is the issue
   VServiceSpy.getAll.and.returnValue(stubValue);

   expect(VServiceSpy.getAll()).toBe(stubValue, 'service returned stub value');
   expect(VServiceSpy.getAll.calls.count())
     .toBe(1, 'spy method was called once');
   expect(VServiceSpy.getAll.calls.mostRecent().returnValue)
     .toBe(stubValue);
 });
});

我认为这是我的服务返回 observable 的问题?不过,我认为这是非常标准的。我的服务没有什么特别之处。

dmcgrandle

你很亲近。要测试服务,您需要将该服务添加到 providers 数组。所以改变这个:

TestBed.configureTestingModule({
  // this fixed an issue which is why i added it
  providers: [{ provide: HttpClient, useValue: spy }]
});

像这样:

TestBed.configureTestingModule({
  providers: [
    VService,
    { provide: HttpClient, useValue: spy }
  ]
});

注意:您可以在设置 HttpClient 时对其进行间谍活动,但也可以查看此处HttpClientTestingModule有详细记录的内容

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法读取未定义/未定义的属性

来自分类Dev

TypeError:无法读取未定义的属性“未定义”

来自分类Dev

无法读取未定义的属性“ $ valid”

来自分类Dev

无法读取未定义的属性“ ObjectID”

来自分类Dev

angularjs无法读取未定义的属性

来自分类Dev

无法读取未定义的属性“ main”

来自分类Dev

无法读取未定义的属性“ forEach”

来自分类Dev

无法读取未定义的属性“ MyProperty”

来自分类Dev

无法读取未定义的属性“ split”

来自分类Dev

无法读取未定义的属性“ $ scope”

来自分类Dev

无法读取未定义的属性“协议”

来自分类Dev

无法读取未定义的属性“ toJSON”

来自分类Dev

无法读取未定义的属性“ attr”

来自分类Dev

无法读取未定义的属性“ helpers”

来自分类Dev

无法读取未定义的属性“ setBounds”

来自分类Dev

无法读取未定义的属性“模块”

来自分类Dev

.done()无法读取未定义的属性

来自分类Dev

无法读取未定义的属性“ getTime”

来自分类Dev

无法读取未定义的属性'indexOf'

来自分类Dev

无法读取未定义的属性“ pushState”

来自分类Dev

无法读取未定义的属性“ debugHosts”

来自分类Dev

无法读取未定义的属性“ canvas”

来自分类Dev

无法读取未定义的属性“ toJS”

来自分类Dev

无法读取未定义的属性“ entityState”

来自分类Dev

无法读取未定义的属性“ displayImage”

来自分类Dev

错误:无法读取未定义的属性

来自分类Dev

无法读取未定义的属性“ newPost”

来自分类Dev

无法读取未定义的属性“ $ apply”

来自分类Dev

无法读取未定义的toDataURL属性