Javascript 如何模拟没有索引的键、值对(角度)列表?

Javascript 如何模拟没有索引的键、值对(角度)列表?,javascript,java,angular,spring-boot,jasmine,Javascript,Java,Angular,Spring Boot,Jasmine,我正在使用Jasmine对angular应用程序进行单元测试,我也在其中。 应用程序有一个用Spring boot编写的后端,它公开了一些API 从一个API(GET请求)接收的内容是映射的键、值(对象、值)对的列表 我想要的是模拟响应,使其看起来与下面的(结果)相同 比如说, constructor(private httpClient: HttpCLient) {} ngOnInit() { this.getAll().subscribe(result => {

我正在使用Jasmineangular应用程序进行单元测试,我也在其中。 应用程序有一个用Spring boot编写的后端,它公开了一些API

从一个API(GET请求)接收的内容是映射的键、值(对象、值)对的列表

我想要的是模拟响应,使其看起来与下面的(结果)相同

比如说,

constructor(private httpClient: HttpCLient) {}

ngOnInit() {
    this.getAll().subscribe(result => {
        this.someListInsideResult = result['someList'];
        console.log('result: ', result);
        console.log('someListInsideResult: ', someListInsideResult);
    }
}

getAll() {
    this.headers = new HttpHeaders().set('X-Authorization', 'Bearer  ' + token).set('X-Requested-With', 'XMLHttpRequest').set('Content-Type', 'application/json');
    return httpClient.get(url, {headers: headers});
}
控制台:

// actual respose(result)
result: [
            key1: value1
            key2: value2
            ...
            ...
            someList: 0: "stringValue"
                      1: "ENUM"
                      2: null
        ]

// list inside the response
someListInsideResult: 0: "stringValue"
                      1: "ENUM"
                      2: null
如果有人能帮忙,我将非常感激


提前感谢。

将http调用移动到服务,比如说
UserService

UserService.service.ts

export class UserService{

getAll(): Observable<any> {
   this.headers = new HttpHeaders().set('X-Authorization', 'Bearer  ' + token).set('X- 
      Requested-With', 'XMLHttpRequest').set('Content-Type', 'application/json');
   return httpClient.get(url, {headers: headers});
}
} 
ngOnInit() {
    this.userSvc.getAll().subscribe(result => {
        this.someListInsideResult = result['someList'];
        console.log('result: ', result);
        console.log('someListInsideResult: ', someListInsideResult);
    }
}
export class MockUserService {

   getAll() {
    return of({
        key1: 'key1',
        someList : [{ "0" : "stringValue"}]
    })
   }

}
beforeEach(async(() => {
    TestBed.configureTestingModule({
        imports: [],
        declarations: [UserComponent],
        providers: [
          { provide: UserService, useClass: MockUserService }] // <-- Here we have injected our Mock
    }).compileComponents();
}));
然后,为了进行测试,请创建一个模拟服务:

MockUserService.ts

export class UserService{

getAll(): Observable<any> {
   this.headers = new HttpHeaders().set('X-Authorization', 'Bearer  ' + token).set('X- 
      Requested-With', 'XMLHttpRequest').set('Content-Type', 'application/json');
   return httpClient.get(url, {headers: headers});
}
} 
ngOnInit() {
    this.userSvc.getAll().subscribe(result => {
        this.someListInsideResult = result['someList'];
        console.log('result: ', result);
        console.log('someListInsideResult: ', someListInsideResult);
    }
}
export class MockUserService {

   getAll() {
    return of({
        key1: 'key1',
        someList : [{ "0" : "stringValue"}]
    })
   }

}
beforeEach(async(() => {
    TestBed.configureTestingModule({
        imports: [],
        declarations: [UserComponent],
        providers: [
          { provide: UserService, useClass: MockUserService }] // <-- Here we have injected our Mock
    }).compileComponents();
}));
然后在User.component.spec.ts中

export class UserService{

getAll(): Observable<any> {
   this.headers = new HttpHeaders().set('X-Authorization', 'Bearer  ' + token).set('X- 
      Requested-With', 'XMLHttpRequest').set('Content-Type', 'application/json');
   return httpClient.get(url, {headers: headers});
}
} 
ngOnInit() {
    this.userSvc.getAll().subscribe(result => {
        this.someListInsideResult = result['someList'];
        console.log('result: ', result);
        console.log('someListInsideResult: ', someListInsideResult);
    }
}
export class MockUserService {

   getAll() {
    return of({
        key1: 'key1',
        someList : [{ "0" : "stringValue"}]
    })
   }

}
beforeEach(async(() => {
    TestBed.configureTestingModule({
        imports: [],
        declarations: [UserComponent],
        providers: [
          { provide: UserService, useClass: MockUserService }] // <-- Here we have injected our Mock
    }).compileComponents();
}));
beforeach(异步(()=>{
TestBed.configureTestingModule({
进口:[],
声明:[UserComponent],
供应商:[

{provide:UserService,useClass:MockUserService}]//您好,@shashashank Vivek感谢您的快速回复,我尝试了您的解决方案,但无法在([])的内部设置
key1:
,因为数组不接受键、值对。@SaurabhGupta,请尝试
返回({
已更新。这是一个输入错误:Ddidn没有任何区别,因为它现在返回一个json对象。我想要的是,它返回一个包含键、值对的列表,而没有任何索引。例如,
['key':'value']
@SaurabhGupta
['key':'value']
起作用。它是一个数组,如果您想插入,请创建一个对象,然后插入类似于
[{'key':'value'}]
的内容。您是否尝试过更新
MockUserService.ts
,正如我在上面的评论中提到的那样?