Vì vậy, tôi đã thực hiện thử nghiệm đơn vị một số và có kinh nghiệm viết bài kiểm tra, nhưng tôi chưa hoàn toàn chấp nhận TDD như một công cụ thiết kế.TDD: Nơi bắt đầu thử nghiệm đầu tiên
Dự án hiện tại của tôi là làm lại hệ thống hiện có tạo số sê-ri như là một phần của quy trình lắp ráp công ty. Tôi có hiểu biết về quy trình và quy trình hiện tại do xem xét hệ thống hiện có. Tôi cũng có một danh sách các yêu cầu mới và cách họ sẽ sửa đổi luồng công việc.
Tôi cảm thấy như tôi đã sẵn sàng để bắt đầu viết chương trình và tôi đã quyết định ép bản thân mình để cuối cùng làm TDD từ đầu đến cuối.
Nhưng bây giờ tôi không biết bắt đầu từ đâu. (Tôi cũng tự hỏi nếu tôi lừa dối quá trình TDD bằng cách đã có ý tưởng về luồng chương trình cho người dùng.)
Luồng người dùng thực sự nối tiếp và chỉ là một loạt các bước. Như một ví dụ, bước đầu tiên sẽ là:
- dùng gửi một số thứ tự sản xuất và nhận được một danh sách các số phần serializable đó hóa đơn đơn đặt hàng vật liệu
Bước tiếp theo là bắt đầu khi người dùng chọn một trong các số phần.
Vì vậy, tôi đã nghĩ rằng tôi có thể sử dụng bước đầu tiên này làm điểm bắt đầu. Tôi biết tôi muốn một đoạn mã có số thứ tự sản xuất và trả về một danh sách các số bộ phận.
// This isn't what I'd want my code to end up looking like
// but it is the simplest statement of what I want
IList<string> partNumbers = GetPartNumbersForMfgOrder(string mfgOrder);
Đọc sách mẫu Kent Becks mà anh ấy nói về chọn các bài kiểm tra nhỏ. Điều này có vẻ như một hộp đen khá lớn. Nó sẽ yêu cầu một kho lưu trữ thứ tự mfg và tôi phải thu thập thông tin một cây cấu trúc sản phẩm để tìm tất cả các số phần có thể áp dụng cho thứ tự mfg này và thậm chí tôi chưa định nghĩa mô hình miền của mình bằng mã.
Vì vậy, một mặt có vẻ như một khởi đầu khốc liệt - một chức năng cấp cao rất chung chung. Mặt khác, tôi cảm thấy như tôi bắt đầu ở cấp độ thấp hơn, tôi thực sự chỉ đoán những gì tôi có thể cần và điều đó có vẻ như chống TDD.
Lưu ý phụ ... đây có phải là cách bạn sử dụng câu chuyện không?
Là một lắp ráp Tôi muốn có được một danh sách các số phần trên một trật tự mfg Vì vậy mà tôi có thể chọn cái nào để serialize
Để được trung thực, một nhà lắp ráp sẽ không bao giờ nói như vậy. Tất cả các nhà lắp ráp muốn là để kết thúc các hoạt động trên nhằm mfg:
Là một lắp ráp tôi muốn đánh dấu các bộ phận với một số serial Vì vậy mà tôi có thể hoàn thành các hoạt động về trình tự mfg
Bạn quên phần thứ ba của câu chuyện, lợi ích. Bạn cũng có chi tiết thực hiện trong đó, mà không mang lại bất kỳ lợi ích kinh doanh (serializable). Tôi sẽ nói một câu chuyện hay hơn sẽ giống như "Là người dùng tôi muốn gửi số đơn đặt hàng sản xuất và danh sách số bộ phận của các đơn hàng đó để tôi có thể gửi danh sách tới hệ thống kiểm kê". –
Serializable trong bối cảnh đó không phải là thực hiện, nó là một thuật ngữ tên miền cho biết phần nào có thể mang một số sê-ri, vì vậy điều quan trọng (theo như tôi hiểu các yêu cầu). –
Nếu đó là trường hợp, hơn bạn đúng. Chuyên môn miền là tất cả. –