Dự án thực tế cho tôi thấy rằng không thể viết các bài kiểm tra đơn vị và sau đó tích hợp và thậm chí ngược lại là sai :-) Vì vậy, tôi thường viết các bài kiểm tra đơn vị cùng với các bài kiểm tra tích hợp.
Tại sao? Hãy để tôi viết làm thế nào tôi thấy cả hai loại thử nghiệm:
Kiểm tra đơn vị - Ngoài Wikipedia và tất cả các thông tin đều biết, kiểm tra đơn vị giúp bạn thu hẹp thiết kế , cải thiện mô hình, quan hệ của bạn. Luồng rất đơn giản: một khi bạn bắt đầu nhập dự án mới / thành phần mới, phần lớn thời gian bạn đang thực hiện một số loại PoC . Khi bạn hoàn thành, bạn luôn có các phương thức dài, các lớp dài, các phương thức và các lớp không kết hợp, v.v.
Kiểm thử đơn vị giúp bạn loại bỏ các vấn đề này vì khi bạn thực hiện kiểm tra đơn vị thực sự bằng cách sử dụng các giả định (phụ thuộc w / o vào thành phần khác) được mô tả ở trên là không thể kiểm tra được. Dấu hiệu cơ bản của mã không thể kiểm chứng là một phần lớn các thử nghiệm vì bạn buộc phải chế giễu nhiều phụ thuộc (hoặc tình huống)
Kiểm tra tích hợp - kiểm tra chính xác và hoạt động nói với bạn rằng thành phần mới (hoặc thành phần) của bạn hoạt động cùng nhau hoặc với các thành phần khác - đây là định nghĩa thông thường. Tôi đã thấy rằng các thử nghiệm tích hợp chủ yếu giúp bạn xác định luồng cách sử dụng thành phần của bạn từ phía người tiêu dùng .
Điều này thực sự quan trọng vì đôi khi nó nói với bạn rằng API của bạn không có ý nghĩa từ bên ngoài.
Vâng, điều gì xảy ra khi tôi viết bài kiểm tra đơn vị và kiểm tra tích hợp sau này?
Tôi đã nhận được các lớp đẹp, thiết kế rõ ràng, trình xây dựng tốt, các phương thức ngắn gọn và mạch lạc, sẵn sàng IoC, v.v. , kỳ dị. Anh chỉ bối rối. Vì vậy, tôi đã sửa chữa API theo quan điểm của anh ấy nhưng nó cũng yêu cầu viết lại nhiều bài kiểm tra vì tôi bị buộc phải thay đổi phương thức và đôi khi cả cách sử dụng API.
Vâng, điều gì xảy ra khi tôi viết bài kiểm tra tích hợp và bài kiểm tra đơn vị sau này?
Tôi có lưu lượng chính xác, khả năng sử dụng tốt. Những gì tôi cũng có là các lớp lớn, mã không mạch lạc, không đăng nhập, phương thức dài. Mã Spaghetti
Lời khuyên của tôi là gì?
Tôi đã học được dòng chảy sau đây:
- Phát triển bộ xương cơ bản của mã của bạn
- Viết các bài kiểm tra tích hợp cho biết liệu nó có ý nghĩa từ quan điểm của người tiêu dùng. Trường hợp sử dụng cơ bản là đủ cho bây giờ. Bài kiểm tra rõ ràng không hoạt động.
- Viết mã cùng với các bài kiểm tra đơn vị cho mỗi lớp.
- Viết phần còn lại / thiếu của các bài kiểm tra tích hợp. Sẽ tốt hơn nếu thực hiện các thử nghiệm này trong phạm vi # 3 về cách bạn đang cải thiện mã của mình.
Lưu ý rằng tôi đã trình bày nhỏ về thử nghiệm đơn vị / tích hợp, xem slide # 21 nơi mô tả bộ xương.