Unit testing 财产';然后';类型void上不存在,角度6单元测试错误
(angular 6应用程序,使用karma和jasmine进行单元测试)Unit testing 财产';然后';类型void上不存在,角度6单元测试错误,unit-testing,angular6,karma-runner,Unit Testing,Angular6,Karma Runner,(angular 6应用程序,使用karma和jasmine进行单元测试) 你好, 作为单元测试新手,我通过复制和粘贴我在教程中找到的以下代码,尝试对我的服务功能之一进行http测试: let httpClientSpy: { get: jasmine.Spy }; import { TestBed, async, inject } from '@angular/core/testing'; import { TrainerCalendarService } from './trainer-ca
你好,
作为单元测试新手,我通过复制和粘贴我在教程中找到的以下代码,尝试对我的服务功能之一进行http测试:
let httpClientSpy: { get: jasmine.Spy };
import { TestBed, async, inject } from '@angular/core/testing';
import { TrainerCalendarService } from './trainer-calendar.service';
import { asyncData } from '../helpers/async-observable-helpers';
import { Appointment } from '../models/appointment';
let service: TrainerCalendarService;
describe('Service: TrainerCalendar', () => {
beforeEach(() => {
httpClientSpy = jasmine.createSpyObj('HttpClient', ['get', 'post']);
service = new TrainerCalendarService(<any> httpClientSpy);
});
it('should returns list of appointment', () => {
const list: Appointment[] = [
new Appointment(),
new Appointment()
];
httpClientSpy.get.and.returnValue(asyncData<Appointment[]>(list));
service.getAll().then(items => expect(items).toEqual(list, 'same items'));
});
});
让httpClientSpy:{get:jasmine.Spy};
从'@angular/core/testing'导入{TestBed,async,inject};
从“/trainer calendar.service”导入{TrainerCalendarService};
从“../helpers/async observable helpers”导入{asyncData};
从“../models/Appointment”导入{Appointment};
let服务:TrainerCalendarService;
描述('服务:TrainerCalendar',()=>{
在每个之前(()=>{
httpClientSpy=jasmine.createSpyObj('HttpClient',['get','post']);
服务=新列车CalendarService(httpClientSpy);
});
它('应该返回约会列表',()=>{
施工人员名单:预约[]=[
新任命(),
新任命()
];
httpClientSpy.get.and.returnValue(异步数据(列表));
然后(items=>expect(items).toEqual(list,'same items');
});
});
根据我的应用程序更改后,我得到了这个:
import { grpService } from "./app/Services/grp.service";
import { of } from 'rxjs'
import { EtudiantComponent } from './app/etudiant/etudiant.component';
let httpClientSpy: { get: jasmine.Spy };
let service: grpService;
describe('Service: Test attendency ', () => {
beforeEach(() => {
httpClientSpy = jasmine.createSpyObj('HttpClient', ['get', 'post']);
service = new grpService(<any> httpClientSpy);
});
it('should returns list of students', () => {
const list: EtudiantComponent[] = [
new EtudiantComponent(service),
new EtudiantComponent(service)
];
httpClientSpy.get.and.returnValue(of<EtudiantComponent[]>(list));
service.getGroupesFromServer.then(items => expect(items).toEqual(list, 'same items'));
});
});
import{grpService}来自“/app/Services/grp.service”;
从“rxjs”导入{of}
从“./app/etudiant/etudiant.component”导入{EtudiantComponent};
让httpClientSpy:{get:jasmine.Spy};
让服务:grpService;
描述('服务:测试出席',()=>{
在每个之前(()=>{
httpClientSpy=jasmine.createSpyObj('HttpClient',['get','post']);
服务=新的GRP服务(httpClientSpy);
});
它('应该返回学生列表',()=>{
常量列表:EtudiantComponent[]=[
新的EtudiantComponent(服务),
新的EtudiantComponent(服务)
];
httpClientSpy.get.and.returnValue(of(list));
然后(items=>expect(items).toEqual(list,'same items');
});
});
最后一行代码出现错误:类型“()=>void”上不存在属性“then”
我怎样才能解决这个问题呢?我试图解决这个问题,显然是通过将那一行(我在那里出错)分解成多行不太复杂的代码来解决的:
httpClientSpy.get.and.returnValue(of<EtudiantComponent[]>(list));
let listres : EtudiantComponent[];
service.getGroupesFromServer();
let items = service.tabres ;
expect(items).toEqual(list, 'same items');
httpClientSpy.get.and.returnValue(of(list));
let listres:EtudiantComponent[];
service.getGroupesFromServer();
让items=service.tabres;
expect(项目).toEqual(列出“相同的项目”);
我试图通过,显然是通过将那一行(我出错的地方)分解成多行不太复杂的代码来实现的:
httpClientSpy.get.and.returnValue(of<EtudiantComponent[]>(list));
let listres : EtudiantComponent[];
service.getGroupesFromServer();
let items = service.tabres ;
expect(items).toEqual(list, 'same items');
httpClientSpy.get.and.returnValue(of(list));
let listres:EtudiantComponent[];
service.getGroupesFromServer();
让items=service.tabres;
expect(项目).toEqual(列出“相同的项目”);