Livestream Cùng Tiep Phan: Angular Unit Testing ft. Tuan Le
Trong buổi chia sẻ này, chúng ta sẽ cùng tìm hiểu về Angular Unit Testing.
Với sự góp mặt của bạn Lê Ngọc Tuấn.

Source code: https://github.com/ngoctuanle/unit-testing-example
► Facebook Page:
https://www.facebook.com/LapTrinhThatKyDieu/
► Facebook Group: https://www.facebook.com/groups/laptrinhthatkydieu/
► Facebook Group Angular Vietnam: https://www.facebook.com/groups/AngularVietnam/

source

Trần Tính

Xin chào mọi người tên tôi là Trần Tính, năm nay 24 tuổi. Sở thích đi phượt và xem phim phim một mình. Hiện là Blogger at mofficeviettel.com

Một trả lời tới to “Livestream Cùng Tiep Phan: Angular Unit Testing ft. Tuan Le”

  1. Trong buổi livestream hôm qua bọn mình đã gặp phải 1 case rất thú vị.
    Đó là khi thực hiện test cho DebounceClickDirective, bọn mình đã gặp phải một cảnh báo lỗi:
    ● DebounceClickDirective › should not output click event
    1 periodic timer(s) still in the queue.
    Lỗi này do trước đó đã thực hiện debounceTime(500) ở trong directive, nhưng timer mà bọn mình chưa đi qua hết khoảng thời gian đó, nên vẫn còn 1 item ở trong queue.
    Sau đó bọn mình sử dụng flush nhưng cũng không giải quyết được. Do đó mình đã lùng sục trong code của RxJS thì thấy nó dùng mặc định là asyncScheduler, mà bên dưới sẽ dùng setInterval. Đây chính là mấu chốt.
    flush chỉ có thể dùng cho non-periodic timer như là setTimeout, trong khi đó setInterval lại là periodic timer. Do đó trong trường hợp này có một số cách giải quyết.
    C1: tick tiếp với lượng thời gian để vượt qua được mốc đã định.
    C2: discardPeriodicTasks gọi hàm này để loại bỏ tất cả những PeriodicTasks còn trong queue.
    C3: chuyển sang dùng rxjs marbles test
    Issues:
    https://github.com/angular/angular/issues/25457
    https://github.com/angular/angular/issues/34742

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *