Я совершенно новичок в модульном тестировании и впервые внедряю модульное тестирование с использованием jasmine / karma.Я сталкиваюсь с несколькими проблемами в понимании того, как я должен реализовать тестирование, издеваясь над Http Post.Я прошел через несколько решений, таких как: решение1 и решение2
Но все же я столкнулся с несколькими проблемами в их понимании и также столкнулся с несколькими ошибками.
Следующим решением2 я попытался реализовать следующее:
http.service.ts
update(id,password,url){
let content = {
"username": id,
"password":password,
}
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
};
return this.http.post(url,content,httpOptions).subscribe((data:any) => {
if(data.length){
return true;
}
else{
return false;
}
})
http.service.spec.ts
import { TestBed, inject } from '@angular/core/testing';
import { HttpClientModule } from '@angular/common/http';
import { HttpService } from './http.service';
import {HttpModule, XHRBackend,Response,ResponseOptions, Connection} from
'@angular/http';
import { of } from 'rxjs';
import { MockBackend } from '@angular/http/testing';
describe('HttpService', () => {
let mockbackend, service;
beforeEach(() => {TestBed.configureTestingModule({
imports:[HttpClientModule, HttpModule],
providers:[{
provide: XHRBackend, useclass: MockBackend
}]
})
});
beforeEach(inject([ XHRBackend], (_service,
_mockbackend) => {
service = _service;
mockbackend = _mockbackend;
}));
it('post method is successfull',() =>{
const status = 'success';
const username = '5555555';
const password = 'test';
const currentUserExpected = JSON.stringify({status:status});
const response = { status : status};
const responseOptions = new ResponseOptions();
responseOptions.body = JSON.stringify(response);
mockbackend.connections.subscribe(connection =>{
connection.mockRespond(new Response(responseOptions));
});
service.update(username,password).subscribe(respond =>{
expect(respond).toEqual(true)
})
})
Я получаю следующую ошибку:
Ошибка
Невозможно прочитать соединения свойств'of undefined
Может кто-нибудь, пожалуйста, помогите мне понять, где я иду не так.
Также я хотел бы получить ссылку на любую документацию, которая может помочь мне лучше понять это.