Unit testing 如何设置后台状态代码?
对于HTTP测试,我有以下提供程序Unit testing 如何设置后台状态代码?,unit-testing,angular,Unit Testing,Angular,对于HTTP测试,我有以下提供程序 providers: [ MockBackend, BaseRequestOptions, { provide: Http, useFactory: (pBackend: MockBackend, pOptions: BaseRequestOptions) => { return new Http(pBackend, pOptions); }, deps: [Mo
providers: [
MockBackend,
BaseRequestOptions,
{
provide: Http,
useFactory: (pBackend: MockBackend, pOptions: BaseRequestOptions) => {
return new Http(pBackend, pOptions);
},
deps: [MockBackend, BaseRequestOptions]
}
]
我可以嘲笑成功的回应
let backend = injector.get(MockBackend);
backend.connections.subscribe(
(connection: MockConnection) => {
connection.mockRespond(new Response(
new ResponseOptions({
body: {mydata:'somedata'}
}
)));
});
let backend = injector.get(MockBackend);
backend.connections.subscribe(
(connection: MockConnection) => {
connection.mockError(new Error('error'));
});
和一个错误响应
let backend = injector.get(MockBackend);
backend.connections.subscribe(
(connection: MockConnection) => {
connection.mockRespond(new Response(
new ResponseOptions({
body: {mydata:'somedata'}
}
)));
});
let backend = injector.get(MockBackend);
backend.connections.subscribe(
(connection: MockConnection) => {
connection.mockError(new Error('error'));
});
但是,请问,我如何嘲笑非200回答。例如,我如何响应HTTP状态代码418
谢谢只需在
响应选项中添加一个status属性
new ResponseOptions({
body: {mydata:'somedata'},
status: 418
})
有关其他属性的信息,请参见,请注意-这不会触发
catch
函数,也不会触发.subscribe
上的第二个函数,如果这是他在单元测试中尝试测试的