Tôi hiện đang tìm hiểu về TDD và cố gắng đưa nó vào thực tế trong các dự án cá nhân của tôi. Tôi cũng đã sử dụng kiểm soát phiên bản rộng rãi cho nhiều dự án này. Tôi quan tâm đến sự tương tác của hai công cụ này trong một quy trình công việc điển hình, đặc biệt là khi nói đến câu châm ngôn để giữ cho các cam kết nhỏ. Dưới đây là một số ví dụ xuất hiện trong tâm trí:
Tôi bắt đầu một dự án mới và viết một bài kiểm tra đơn giản để tạo ra một lớp chưa tồn tại. Tôi có nên thực hiện bài kiểm tra trước khi viết lớp mặc dù bài kiểm tra thậm chí không biên dịch? Hoặc tôi nên bỏ ra số lượng mã tối thiểu cần thiết để có được bài kiểm tra biên dịch trước khi cam kết?
Tôi tìm thấy một lỗi và viết một bài kiểm tra để tạo lại nó. Tôi có nên cam kết kiểm tra không thành công hoặc thực hiện sửa lỗi và sau đó cam kết không?
Đây là hai ví dụ xuất hiện trong tâm trí ngay lập tức. Hãy cung cấp các ví dụ bổ sung trong câu trả lời của bạn.
Chỉnh sửa:
Tôi đã đưa ra một giả định trong cả hai ví dụ rằng ngay sau khi viết bài kiểm tra tôi sẽ viết mã để thực hiện bài kiểm tra. Một tình huống khác cũng có thể xảy ra: Tôi làm việc trên một dự án sử dụng TDD trong vài giờ mà không cam kết. Cuối cùng khi tôi thực hiện cam kết, tôi muốn chia nhỏ công việc của mình thành những phần nhỏ. (Git làm điều này tương đối dễ dàng ngay cả khi bạn muốn chỉ cam kết một số thay đổi trong một tệp.)
Điều này có nghĩa là câu hỏi của tôi cũng nhiều như những gì cần cam kết cũng như khi nào nên cam kết.