Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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
Javascript 角度单元测试HttpClientTestingModule是否未生成请求?_Javascript_Angular - Fatal编程技术网

Javascript 角度单元测试HttpClientTestingModule是否未生成请求?

Javascript 角度单元测试HttpClientTestingModule是否未生成请求?,javascript,angular,Javascript,Angular,我已经建立了一个服务,我正试图为它编写测试 它使用图书馆。我提供了AuthHttp服务,但是告诉测试使用Http 服务本身似乎运行良好,但我正在努力编写测试 我试图从Angular使用HttpClientTestingModule来模拟http响应并测试值,但服务中的“getLookups”函数似乎从未执行过 getLookup(id: number): Observable<Lookup[]> { const _lookups: Subject<Lookup[]>

我已经建立了一个服务,我正试图为它编写测试

它使用图书馆。我提供了AuthHttp服务,但是告诉测试使用Http

服务本身似乎运行良好,但我正在努力编写测试

我试图从Angular使用HttpClientTestingModule来模拟http响应并测试值,但服务中的“getLookups”函数似乎从未执行过

getLookup(id: number): Observable<Lookup[]> {
    const _lookups: Subject<Lookup[]> = new Subject();
    const lookups: Observable<Lookup[]> = _lookups.asObservable();

       this.authHttp.get(this.config.api.baseAPI + '/api/property/' + id + '/lookup')

        .subscribe(data => {

                const lookupsRaw = data.json();
                const lookUpsParsed: Lookup[] = [];
                lookupsRaw.forEach((lup) => {
                    lookUpsParsed.push(new Lookup(lup.id, lup.label));
                });

                 console.log(lookUpsParsed);
                _lookups.next(lookUpsParsed);
            },
            err => console.log('Error!!!!'+ err),
            () => console.log('Request Complete!!')
        );
    return lookups;
}
有人能告诉我这一个哪里出了问题吗


谢谢,我们试着做这样的事情:

it('',async(done)=>{ 
 ...
 service.getLookup(7).subscribe(lookup => {
  expect(...).tobe(...);
  done();
   });
});

我的猜测是,由于您的代码是异步的,您需要等待它做出响应。这是一种方法

尝试这样做:

it('',async(done)=>{ 
 ...
 service.getLookup(7).subscribe(lookup => {
  expect(...).tobe(...);
  done();
   });
});

我的猜测是,由于您的代码是异步的,您需要等待它做出响应。这是这样做的一种方法

您遇到了什么错误?
useExisting
Http
属性是什么?你需要提供一个,不要把无关的代码。你得到了什么错误?
useExisting
Http
属性是什么?你需要提供一个,不要把无关的代码。