Я пытаюсь провести модульное тестирование своего сервисного уровня в Angular, но когда я пытаюсь смоделировать запросы http для get, post и put, я получаю сообщение об ошибке, в котором говорится, что не удалось найти открытый запрос, но обнаружен 1
Я уже пытался найти несколько сообщений с этой проблемой, но ни одна из них, похоже, не пришла мне на помощь, но, похоже, в итоге ничего не получилось
it('should be able load company data', inject([HttpClient], (http: HttpClient) => {
const companyList: CompanyVerificationResponseDto = {
companyName: 'testcompany',
kvkNumber: 12345678,
companyPhone: '0612341234',
email: 'testtest@email.com',
accountStatus: 0,
contactPhone: '0631313131'
};
managementService.loadData();
const headers = new HttpHeaders().set('Content-Type', 'application/json');
const param = new HttpParams().set('token', '1234-1234-1234').append('email', 'testtest@email.com');
const options = {params: param, headers: headers};
http.get('http://localhost:8080/adminpage', options).subscribe(() => {
});
const req = httpMock.expectOne('http://localhost:8080/adminpage?token=1234-1234-1234&email=testtest@email.com');
expect(req.request.method).toEqual('GET');
req.flush(companyList);
}));
afterEach(() => {
httpMock.verify();
});
и мой фактический метод обслуживания выглядит следующим образом:
public loadData() {
this.restfulService.url = this.restfulService.getBaseUrl() + '/adminpage';
const param = new HttpParams().set('token', this.restfulService.getLocalStorageToken().token);
const options = {params: param, headers: this.headers};
return this.httpClient.get<CompanyVerificationResponseDto[]>(this.restfulService.url, options).subscribe(data => {
this.companyList = data;
this.onSuccesfulReceivedData(data);
},
error => this.restfulService.handleError(error));
}
Но я получаю эту ошибку:
PhantomJS 2.1.1 (Windows 8 0.0.0) ManagementService should be able to accept a company based on email FAILED
Error: Expected no open requests, found 1: GET http://localhost:8080/adminpage in http://localhost:9876/_karma_webpack_/vendor.js (line 32166)
verify@http://localhost:9876/_karma_webpack_/vendor.js:32166:97
http://localhost:9876/_karma_webpack_/main.js:3356:24
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:6843:31
onInvoke@http://localhost:9876/_karma_webpack_/vendor.js:156148:45
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:6842:40
run@http://localhost:9876/_karma_webpack_/polyfills.js:6593:49
runInTestZone@http://localhost:9876/_karma_webpack_/vendor.js:156369:37
http://localhost:9876/_karma_webpack_/vendor.js:156384:33
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:6843:31
run@http://localhost:9876/_karma_webpack_/polyfills.js:6593:49
http://localhost:9876/_karma_webpack_/polyfills.js:7327:37
invokeTask@http://localhost:9876/_karma_webpack_/polyfills.js:6876:36
runTask@http://localhost:9876/_karma_webpack_/polyfills.js:6643:57
drainMicroTaskQueue@http://localhost:9876/_karma_webpack_/polyfills.js:7050:42
Я ожидаю, что он пройдет, сказав, что метод request является запросом get, но фактический результат - ошибка.