Тестирование функциональности сохранения с использованием Jasmine в приложении Angular 4 - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь написать тест, используя Jasmine для моего приложения angular 4. Мне нужно проверить метод Ok мои настройки неверные значения Я написал тест частично, но не уверен, как проверить метод OK с помощью жасмина. Таким образом, в основном, когда значения недопустимы, функция isMinValid или функция isMaxValid будут устанавливать соответствующие закрытые переменные _isMinValid и _isMaxValid в значение false.

Я написал тест только для функций, но не уверен, как проверить метод Ok

     private _isMinValid: boolean = false;
      private _isMaxValid: boolean = false;
 public data: any;



     public show() {
        this.domicileId = this.data.domicile.id;
        this.domicile = this.data.domicile;
        this.domiciles = this.data.domiciles;
        this._selectedIndustries = this.data.selectedIndustries;
        this.domicileInfo = this.domicile.domicileInformation;
        this.amendAssumptions = this._translate.instant('CAPTIVES.DOMICILES.AMENDASSUMPTIONS', { domicile: this.domicile.name });
        this.active = true;
      }

          public ok() {
            if (this._isMinValid && this._isMaxValid) {
              this.data.domicileId = this.domicileId;
              this.data.domicileInfo = this.domicileInfo;
              this.hide(true);
            }
          }

           isMinValid(currentItem: any, item_IDX: number) {
            if (item_IDX === 0) {
              this._isMinValid = true;
              return true;
            }
            let previousItem = this.domicileInfo.taxAssesment.items[item_IDX - 1];
            if (+currentItem.minSize !== +previousItem.maxSize) {
               this._isMinValid = false;
              return false;
            }
            return true;
          }


          isMaxValid(currentItem: any, item_IDX: number) {
            if (item_IDX === 0) {
              this._isMaxValid = true;
              return true;
            }

            if (+currentItem.maxSize <= +currentItem.minSize) {
              this._isMaxValid = false;
              return false;
            }
            return true;
          }


  Tests




describe('DomicileSelectionComponent', () => {
      let comp: DomicileSelectionComponent;
      let fixture: ComponentFixture<DomicileSelectionComponent>;

      beforeEach(() => {
        TestBed.configureTestingModule({
          imports: [
            TooltipModule.forRoot(),
            FormsModule,
            TranslateModule.forRoot({
              loader: { provide: TranslateLoader, useClass: TranslateFakeLoader }
            })
          ],
          providers: [
            { provide: BsModalRef, useClass: BsModalRefStub },
            { provide: BackendProxy.ReferenceProxy, useClass: ReferenceProxyStub },
            { provide: RunService, useValue: runServiceStub }
          ],
          declarations: [DomicileSelectionComponent, YesNoPipe, CLICK_INPUT_DIRECTIVE, ShortNumberFormatPipe]
        });
      });

      beforeEach(() => {
        fixture = TestBed.createComponent(DomicileSelectionComponent);
        comp = fixture.componentInstance;
        comp.domicileInfo =  domicileInformationDataResult.data;
        fixture.detectChanges();
      });


          fit('should return false because the current item min value is not equal to the previous max value', () => {
            comp.domicileInfo.taxAssesment.items = [{maxSize: 40000000 , minSize: 30000000 , values: [2 , 2]}];
            let isMin: boolean = comp.isMinValid(comp.domicileInfo.taxAssesment.items , 1);
            //expect(isMin).toBe(false);
            //expect(comp.ok()).toHaveBeenCalled();
          });

        });

1 Ответ

0 голосов
/ 01 мая 2018

Ваша функция ok() кажется довольно простой для тестирования. Его блок if просто проверяет две переменные, чтобы увидеть, являются ли они истинными, а затем движется дальше. Итак, чтобы проверить это, просто установите эти переменные и выполните тест:

describe('ok()', () => {
  it('should set variables and call "hide()" function', () => {
    spyOn(comp, 'hide');

    // first check to make sure that they aren't already set
    expect(comp.data.domicileId).toEqual(null);
    expect(comp.data.domicileInfo).toEqual(null);

    comp._isMinValid = true;
    comp._isMaxValid = true;
    comp.domicileId = 1;
    comp.domicileInfo = 'foo';
    comp.ok();

    expect(comp.data.domicileId).toEqual(1);
    expect(comp.data.domicileInfo).toEqual('foo');
    expect(comp.hide).toHaveBeenCalledWith(true);
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...