JasmineJS - Kiến trúc BDD
Jasmine tuân theo khuôn khổ Phát triển Theo Định hướng Hành vi (BDD). Trước khi tìm hiểu nguyên lý hoạt động của Jasmine, hãy cùng chúng tôi biết khung BDD là gì.
Lưu đồ sau đây mô tả các giai đoạn khác nhau của khung BDD.
Step 1 − Start
Trong giai đoạn này, chúng tôi sẽ chuẩn bị môi trường sẵn sàng cho ứng dụng Jasmine.
Step 2 − Write a failing test
Trong bước này, chúng tôi sẽ viết trường hợp thử nghiệm đầu tiên của chúng tôi. Rõ ràng là thử nghiệm này sẽ thất bại vì không có tệp hoặc chức năng nào như vậy để kiểm tra.
Step 3 − Write a code to make it pass
Trong giai đoạn này, chúng tôi sẽ chuẩn bị tệp hoặc hàm JavaScript cần được kiểm tra. Giai đoạn này rất quan trọng vì chúng tôi cần đảm bảo rằng tất cả các trường hợp thử nghiệm mà chúng tôi đã chuẩn bị ở giai đoạn đầu sẽ thành công.
Step 4 − Refactor
Refactor là một giai đoạn rất quan trọng của mô hình BDD, nơi chúng ta cần chuẩn bị càng nhiều trường hợp kiểm thử càng tốt cho ứng dụng hoặc chức năng cụ thể đó.
Step 5 − Stop
Nếu mọi thứ diễn ra tốt đẹp thì ứng dụng của bạn phải sẵn sàng và đang hoạt động. Vì vậy, chúng ta có thể coi bước này là bước kết thúc đơn đăng ký BDD của chúng ta.
Thí dụ
Bây giờ chúng ta đã thu thập được một số kiến thức về nguyên lý hoạt động của khung BDD. Hãy để chúng tôi xem cách Jasmine tuân theo khung BDD này trong dòng thử nghiệm JavaScript.
Như ảnh chụp màn hình mô tả chúng ta cần kiểm tra Abc.js bằng cách sử dụng khung Jasmine. SpecRunner.html là tệp đầu ra sẽ lấy Spec.js(Test case file ), Abc.js(file to be tested), LIB làm đầu vào và chạy tất cả các trường hợp thử nghiệm có trong tệp đặc tả và hiển thị kết quả vào trình duyệt.
Lib - Đây là các tệp JavaScript có sẵn sẽ hữu ích để kiểm tra các chức năng khác nhau và các tệp JavaScript khác được sử dụng trong dự án của chúng tôi.
Spec.js(Test case file)- Đây là tệp JavaScript chứa tất cả các trường hợp thử nghiệm được yêu cầu để kiểm tra bất kỳ hàm hoặc tệp JavaScript nào. Trong phương pháp BDD, chúng tôi sẽ viết bài kiểm tra đầu tiên, do đó đây là tệp cần được cập nhật đầu tiên. Chắc chắn điều này sẽ không thành công vì không có tệp hoặc chức năng nào như vậy trong dự án của chúng tôi có thể được kiểm tra. Tệp này có thể được cấu trúc lại không giới hạn lần cho đến khi tất cả các chức năng được kiểm tra.
Abc.js(File to be tested) - Đây là tệp chứa các chức năng của bạn sẽ được kiểm tra đơn vị bằng cách sử dụng tệp Spec.js và Lib.
SpecRunner.html - SpecRunner.html là một tệp html bình thường sẽ hiển thị đầu ra của bài kiểm tra đơn vị với sự trợ giúp của các mã JavaScript được nhúng trong đó.