Жасмин тест с наблюдаемым и массивом - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть угловое приложение, и я занят тестированием с Жасмином.

У меня есть этот метод:

/** Gets the case type info configuration that is used on various views */
    getCaseTypeInfo(spinnerMessage: string): Observable<CaseTypeInfoModel[]> {
        let result: Observable<CaseTypeInfoModel[]>;
        Iif (this.caseTypeInfoSnapshot) {
            result = of(this.caseTypeInfoSnapshot);
        } else {
            result = this.http.get<CaseTypeInfoModel[]>(`${this.api}/types`, spinnerMessage).pipe(map(i => {
                this.caseTypeInfoStoreService.addCaseTypeInfoToStore(i);
                return i;
            }));
        }
        return result;
    }

и юнит-тест для него до сих пор:

 // tslint:disable-next-line:no-commented-code
    it('shoud get case type info configuration that is used on various views', () => {
        let result99: Observable<CaseTypeInfoModel[]>;
        result99 =  service.getCaseTypeInfo('spinner') as Observable<CaseTypeInfoModel[]>;
        const castTypeinfoModelTest = new Array<CaseTypeInfoModel>();

        service.getCaseTypeInfo('spinner');
        caseTypeInfoStoreService.addCaseTypeInfoToStore();
        afwHttpMock.setupOnlyResponse(result99, 200);
        expect(castTypeinfoModelTest).toBe(true);

    });

но оно не искажается.

И я получаю сообщение об ошибке в этой строке:

 expect(castTypeinfoModelTest).toBe(true);

Спасибо

У меня теперь так:

 it('shoud get case type info configuration that is used on various views when snapshot doesnt exists', () => {
        let result99: Observable<CaseTypeInfoModel[]>;
         const spy = spyOn(caseTypeInfoStoreService, 'addCaseTypeInfoToStore');
        result99 = service.getCaseTypeInfo('spinner') as Observable<CaseTypeInfoModel[]>;
        const response = [{ mock: 'mock' } as any];
        service['caseTypeInfoSnapshot'] = response;
        caseTypeInfoStoreService.addCaseTypeInfoToStore();

         afwHttpMock.setupOnlyResponse(result99, 200);
         expect(spy).toHaveBeenCalledWith('spinner');
          afwHttpMock.returnSuccessResponse();
    });

Но эточасть по-прежнему красная:

i => {
                this.caseTypeInfoStoreService.addCaseTypeInfoToStore(i);
                return i;

этого метода:

 /** Gets the case type info configuration that is used on various views */
    getCaseTypeInfo(spinnerMessage: string): Observable<CaseTypeInfoModel[]> {
        let result: Observable<CaseTypeInfoModel[]>;
        if (this.caseTypeInfoSnapshot) {
            result = of(this.caseTypeInfoSnapshot);
        } else {
            result = this.http.get<CaseTypeInfoModel[]>(`${this.api}/types`, spinnerMessage).pipe(map(i => {
                this.caseTypeInfoStoreService.addCaseTypeInfoToStore(i);
                return i;
            }));
        }
        return result;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...