Angular2单元测试Http MockBackend问题-无法读取mergeOptions中未定义的属性合并
Angular2 unit test Http MockBackend issue - Cannot read property merge of undefined at mergeOptions
Angular2单元测试Http MockBackend问题-无法读取mergeOptions中未定义的属性合并。
我正在尝试为我的http get promise做一个基本的单元测试。
打字脚本编译器运行良好。但当我用因果报应运行程序运行npm运行测试时,我会得到以下错误。
这是我得到的gitbash错误:无法读取mergeOptions中未定义的属性"merge"
这是我的代码:
import {Injectable} from 'angular2/angular2';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
@Injectable()
export class FirebaseService{
headers: Headers;
constructor(public http?: Http) {
this.headers = new Headers();
this.headers.append('Content-Type', 'application/json');
}
public getSpotifyTracks = ():Promise<Object> =>{
return this.http
.get('https://api.spotify.com/v1/tracks/0eGsygTp906u18L0Oimnem', {headers:this.headers})
.map((response) => {
return response.json()
}).toPromise();
}
}
这是我的测试:
import {beforeEach, ddescribe, describe, expect, iit, inject, it, xit, injectAsync, beforeEachProviders, fakeAsync, tick} from 'angular2/testing';
import {provide, Injector, bind} from 'angular2/angular2';
import {HTTP_PROVIDERS, Http, MockBackend, BaseRequestOptions} from 'angular2/http';
import {FirebaseService} from '../app/firebase-service';
describe('Spotify Service Calls', () => {
beforeEachProviders(() => [
MockBackend,
BaseRequestOptions,
provide(Http, {useFactory:
function(backend, defaultOptions) {
return new Http(backend, defaultOptions);
},
deps: [MockBackend]})
]);
//This test doesnt work??????????????
it('getting tracks', inject([Http], (http) => {
var firebaseService = new FirebaseService(http);
var response;
firebaseService.getSpotifyTracks().then((res) => {
response = res;
expect(response).not.toBe(null);
});
}));
});
我已经更新到alpha.46,它破坏了很多东西。有一点是http.get(...)
调用不再返回带有.map
方法的Observable。
看看是否用类似的东西替换.map
return this.http
.get('https://api.spotify.com/v1/tracks/0eGsygTp906u18L0Oimnem', {headers:this.headers})
.subscribe((response) => {
return response.json()
}).toPromise();
这就是我所做的,它很有效,但不确定这有多"正确"。。。
相关文章:
- 未捕获的类型错误:无法读取属性'fitBounds'谷歌地图(markrWithlabel js)中未定
- emscripten+sdl=引发异常:TypeError:无法设置属性'widthNative'的未定
- ExceptionsManager.js:61无法读取属性'getCurrentPosition'的未定
- 未捕获的ReferenceError:未定义项
- 为什么我会得到错误Uncaught TypeError:无法设置属性'显示'在Javascript中未定
- 找不到未定错误的属性长度
- JSON 对象中的未定义项
- 未捕获的ReferenceError:未定义父级
- Angular2单元测试Http MockBackend问题-无法读取mergeOptions中未定义的属性合并
- 当使用window.open将数据从父级传递到子级时,为什么我会得到'无法读取属性'元素'的未定
- 如何在dojo或JavaScript中检查多个未定义项
- 防止在一行代码中出现未定义项
- uncatch TypeError:无法读取 javascript / React-router / React 中未定
- Requirejs + Backbone Uncatch TypeError: 無法讀取未定義的屬性「Model」
- 砌体布局未定心
- 为什么我得到'TypeError: Cannot read property 'props'未定