Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

127
Views
Usando la función jasmie .toHaveBeenCalledWith() con Moment Objects

Tengo la siguiente prueba en un angular (4) -

 it('should call service', async(inject([CommentTableComponent], (cmp: CommentTableComponent) => { spyOn(mockSock, 'getComments').and.callThrough(); cmp.ngOnInit(); expect(mockSock.getComments).toHaveBeenCalledWith('api/jobs/604', moment()); })));

que arroja el error:

Se esperaba que se llamara a getComments espía con [ 'api/jobs/604', sábado 29 de abril de 2017 12:31:07 GMT+0100 ] pero las llamadas reales fueron [ 'api/jobs/604', sábado 29 de abril de 2017 00:00 :00 GMT+0100, sábado 29 de abril de 2017 12:31:07 GMT+0100].

Como estas cadenas son claramente idénticas, supongo que esto se debe a que el valor de prueba de ahora es varios milisegundos más tarde que el valor cuando el componente se estaba ejecutando y los milisegundos no se analizan en la cadena.

Entonces, mi pregunta es, ¿cómo puedo hacer que mi prueba funcione? ¿Hay alguna manera de verificar que el parámetro llamado esté dentro de x milisegundos de la hora actual?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Prueba esto:

 var spy = spyOn(mockSock, 'getComments').and.callThrough(); var today = moment('2017-4-29').toDate(); jasmine.clock().mockDate(today); expect(spy.calls.mostRecent().args[0]).toEqual('api/jobs/604'); expect(spy.calls.mostRecent().args[1].valueOf()).toEqual(today.valueOf());

Referencia: https://jasmine.github.io/2.5/introduction.html#section-Jasmine_Clock

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!