角形无法测试

时间:2018-04-19 08:50:08

标签: javascript html angular testing

我是Angular的初学者测试员,我使用Jasmine进行单元测试。 我有template driven form这样的话:

<form name="editForm" role="form"  novalidate (ngSubmit)="save()" #editForm="ngForm">

    <div class="modal-header">
       .....
    </div>
    <div class="modal-body">

        <div class="half-block">
            <div class="form-group half-item">
                <label class="form-control-label" jhiTranslate="oncosupApp.paciente.nombre" for="field_nombre">Nombre</label>
                <input type="text" class="form-control" name="nombre" id="field_nombre"
                    [(ngModel)]="paciente.nombre" required/>
                <div [hidden]="!(editForm.controls.nombre?.dirty && editForm.controls.nombre?.invalid)">
                    <small class="form-text text-danger"
                       [hidden]="!editForm.controls.nombre?.errors?.required" jhiTranslate="entity.validation.required">
                       This field is required.
                    </small>
                </div>
            </div>


          ...........

现在我想对它进行单元测试,但是我没有找到关于如何测试模板驱动表单的任何教程。根据角度Testing Model Driven Forms,这些形式无法进行单元测试:

  

提示:使用模板驱动的表单,状态在视图中,除非组件使用ViewChild引用模板表单   装饰者没有办法使用单元测试来测试表单。我们会   必须执行完整的E2E测试,模拟按钮点击和输入   价值形式。

如果遇到同样问题的人会与我分享解决方案,如何测试此表单的验证,我将不胜感激。不是很详细,但我只是想检查一下是否真的是apear以及提交按钮是否保存了数据。

我有这个model.ts,它有自己的导入和代码:

export class Paciente implements BaseEntity {
    constructor(

        public nombre?: string,
        ....

我想创建一个新对象的其中一个规范就在这里:

  it('Should call create service on save for new entity',
                inject([],
                    fakeAsync(() => { //assync is used to let all the assync code to finish before continuing
                        // GIVEN
                        const entity = new Paciente('anna');//here is a NOMBRE THAT i WANT TO CHECK IF ITS FIELD APPEARS IN TEH FORM OR NOT
                        spyOn(service, 'create').and.returnValue(Observable.of(new HttpResponse({body: entity})));
                        comp.paciente = entity;
                        // WHEN
                        comp.save();
                        tick(); // simulate async

                        // THEN
                        expect(service.create).toHaveBeenCalledWith(entity);
                        expect(comp.isSaving).toEqual(false);
                        expect(mockEventManager.broadcastSpy).toHaveBeenCalledWith({ name: 'pacienteListModification', content: 'OK'});
                        expect(mockActiveModal.dismissSpy).toHaveBeenCalled();
                    })
                )
            );

0 个答案:

没有答案