Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 财产';然后';类型void上不存在,角度6单元测试错误_Unit Testing_Angular6_Karma Runner - Fatal编程技术网

Unit testing 财产';然后';类型void上不存在,角度6单元测试错误

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

(angular 6应用程序,使用karma和jasmine进行单元测试)
你好,
作为单元测试新手,我通过复制和粘贴我在教程中找到的以下代码,尝试对我的服务功能之一进行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(列出“相同的项目”);