Javascript 使用jasmine进行http测试的错误方法(7)
我在angular 7中有一个简单的应用程序,它使用giphy api发出GIF列表请求,通知GIF的数量和搜索词 我想创建一个发出请求的测试,并验证GIF列表的结果是否大于0 但我有很多错误,我不明白为什么 服务Javascript 使用jasmine进行http测试的错误方法(7),javascript,angular,unit-testing,testing,jasmine,Javascript,Angular,Unit Testing,Testing,Jasmine,我在angular 7中有一个简单的应用程序,它使用giphy api发出GIF列表请求,通知GIF的数量和搜索词 我想创建一个发出请求的测试,并验证GIF列表的结果是否大于0 但我有很多错误,我不明白为什么 服务 private apiKey:string = "123"; private shortUrl:string = "//api.giphy.com/v1/gifs/search?q=" searchGif(term:string, limit:number):Observable&
private apiKey:string = "123";
private shortUrl:string = "//api.giphy.com/v1/gifs/search?q="
searchGif(term:string, limit:number):Observable<Gif[]> {
let url:string = this.getUrl(term, limit);
return this.http.get<Gif[]>(`${url}/`);
}
错误
节点_模块/rxjs/internal/Observable.d.ts中的错误(14,60):错误
TS1183:无法在环境上下文中声明实现。
src/app/gif list/gif list.component.spec.ts(33,19):错误TS2339:
类型“Observable”上不存在属性“length”
我认为唯一有意义的测试是测试它是否返回一个可观察的。。。就这样
expect(results).toEqual(jasmine.any(Observable))
为什么要在前端代码中测试API?单元测试应该用于测试特定的代码单元。API应该在后端环境IMO中进行测试。我使用的是来自giphy的API,我只有前端。但是您只能在构建过程中检查一些东西。当您创建构建时,giphy可以更改API,而您的单元测试没有任何意义。感谢您的帮助,但我有一个错误:预期未定义为相等。编写的测试只是验证指向返回可观察函数的函数指针。不太有用,因为ut总是有效的。要测试obsv的执行,请使用subscribe To it insteadmy函数返回它searchGif(term:string,limit:number):可观察
expect(results).toEqual(jasmine.any(Observable))