Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
Unidad de problemas que prueba el restablecimiento del control de forma reactiva angular al hacer clic en el botón

Me enfrento a un problema para escribir un caso de prueba de unidad en jazmín para mi aplicación angular. Tener un formulario reactivo e intentar restablecer un control de formulario en particular con un clic de botón. Aunque el escenario debería ser lo suficientemente simple como para probarlo, parece que me falta algo aquí.

A continuación se muestra el fragmento de código de la aplicación.

aplicación.componente.html:

 <form [formGroup]="userForm" novalidate (ngSubmit)="onSubmit()"> <div> <input type="text" id="fNameFld" name="fName" formControlName="fName" placeholder="First Name" /> <button (click)="clearField('fName')" id="clrFName"> Clear First Name </button> </div> <div> <input type="text" id="lNameFld" name="lName" formControlName="lName" placeholder="Last Name" /> <button (click)="clearField('lName')" id="clrLName">Clear Last Name</button> </div> <div> <button type="submit">Submit</button> </div> </form>

aplicación.componente.ts

 import { FormBuilder, FormGroup } from '@angular/forms'; @Component({ selector: 'my-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent implements OnInit { name = 'Angular ' + VERSION.major; userForm: FormGroup; constructor(private readonly fb: FormBuilder) {} ngOnInit() { this.userForm = this.fb.group({ fName: this.fb.control(null), lName: this.fb.control(null), }); } onSubmit() { console.log('Submitted Data', this.userForm.value); } clearField(controlName: string) { this.userForm.get(controlName).reset(); } }

Código de prueba de la unidad

 it('should clear fName control when the "Clear First Name" button is clicked', () => { const spy = spyOn(component, 'clearField'); const clearBtn = fixture.debugElement.query(By.css("button#clrFName")); const form = component.userForm; form.patchValue({ 'fName': 'John, 'lName': 'Doe' }); clearBtn.nativeElement.click(); fixture.detectChanges(); expect(spy).toHaveBeenCalledTimes(1); // passes expect(spy).toHaveBeenCalledWith('fName'); // passes expect(form.get('fName').value).toBeNull(); // fails: Expected 'John' to be null. });

Angular: 10.0.14

CLI angular: 10.0.8

StackBlitz: https://angular-ivy-fc6rik.stackblitz.io

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

parece que te clearField . Agregue esto para ejecutar realmente su contenido cuando se burle de él:

 const spy = spyOn(component, 'clearField').and.callThrough();

Entonces, cada vez que se llama a clearField , activará el espía (para que sepa si ha sido llamado) y ejecutará su contenido.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda