2012-06-12 31 views
5

Tôi đã bắt đầu viết một ứng dụng JavaScript làm dự án cá nhân. Tôi hy vọng sẽ tìm hiểu và sử dụng thử nghiệm đơn vị cho dự án này. Tôi không có nhiều kinh nghiệm trong việc viết các bài kiểm tra đơn vị, nhưng tôi đã đọc rằng Jasmine sẽ là một thư viện tốt để giúp tôi đạt được điều này.Phát triển JavaScript - Khi nào tôi nên bắt đầu thực hiện các bài kiểm tra đơn vị?

Với điều đó đã nói, tôi hơi quá hăng hái trong chương trình mã hóa ban đầu của mình. Tôi đã có một ý tưởng và chạy với nó. Như vậy, cấu trúc của ứng dụng của tôi là và tiếp tục không phải là OO như tôi muốn. Điều này đã dẫn tôi xuống con đường của nhiều, refactors lớn. Tôi đã thấy rằng việc tái cấu trúc bằng ngôn ngữ gõ nhẹ khiến tôi đặc biệt dễ bị lỗi.

Thực tế là tôi phải quay lại và xử lý các lỗi mà tôi đã giới thiệu lại khiến tôi khao khát các bài kiểm tra đơn vị. Ngược lại, tuy nhiên, thực tế là tôi đang làm lại nền tảng của codebase của mình nên vẫn còn nhiều khiến tôi ngần ngại. Tôi không muốn tạo các bài kiểm tra đơn vị cho dự án của mình chỉ sau đó quyết định rằng việc tái cơ cấu nhiều hơn (điều này sẽ không dùng nữa các bài kiểm tra của tôi qua điểm 'sửa lỗi').

Đây có phải là mối quan ngại chung không? Tôi cảm thấy như sẽ có một thời điểm mà 'nền tảng' của tôi sẽ đủ ổn định để viết các bài kiểm tra cho nó ... nhưng điều đó làm cho các bài kiểm tra nghe có vẻ ít hấp dẫn hơn nhiều.

+2

Tôi cảm thấy rằng điều này thuộc về [programmers.se]. – zzzzBov

Trả lời

4

Tôi sẽ xem xét xử lý mã nguồn hiện tại của bạn là "thử nghiệm" hoặc là "nguyên mẫu" - như trong, một thứ mà bạn chủ yếu sẽ loại bỏ.

Nếu bạn có kế hoạch tái cấu trúc mã nguồn của mình, có lẽ bạn nên giới thiệu các kiểm tra đơn vị trước khi bạn refactor hoặc cho mã được tái cấu trúc.

Lợi ích của việc viết bài kiểm tra cho cơ sở dữ liệu hiện tại là khá rõ ràng: Bạn có thể chạy codebase đã được cấu trúc lại của bạn dựa vào chúng để xác minh chức năng. Bạn có lẽ sẽ cần phải cơ cấu lại các bài kiểm tra của bạn phần nào là tốt trong khi bạn đang tái cấu trúc, nhưng đó là bình thường.

Những gì bạn không nên làm trong khi viết lại các bài kiểm tra sẽ xóa chúng. Cố gắng giữ tất cả các xác nhận cuối cùng trong mỗi bài kiểm tra của bạn giống nhau, trong khi thay thế cách kiểm tra khác hoạt động. Bằng cách này, bạn sẽ có thể theo dõi những gì bạn đang thử nghiệm tốt hơn và chức năng mới vẫn thực hiện công việc tương tự.

Tất nhiên nếu bạn đã viết mã ban đầu của mình theo kiểu không phải OO, có thể khó kiểm tra mã đó. Trong trường hợp này, tôi khuyên bạn nên chọn viết các bài kiểm tra mức cao hơn (các bài kiểm tra chức năng) cho mã ban đầu của bạn, hoặc viết mã được tái cấu trúc của bạn bằng cách sử dụng phương pháp loại TDD.

Sử dụng kiểm tra chức năng, bạn có thể có phạm vi kiểm tra cho chức năng chính của ứng dụng của bạn. Bạn sẽ không có các bài kiểm tra hạt mịn như với các bài kiểm tra đơn vị, nhưng bạn có thể viết các bài kiểm tra dễ dàng hơn và sẽ không cần phải sửa đổi chúng càng nhiều vào cuối. Bạn có thể sử dụng một công cụ như Selenium cho việc này.

Với phương pháp TDD, có thể bạn sẽ có ít công việc nhất. Bạn sẽ đảm bảo phạm vi kiểm tra tốt cho mã mới được viết, nhưng bạn sẽ phải tự xác minh mã hoạt động theo cách tương tự như mã cũ đã làm.

Các vấn đề liên quan