Kiểm tra thứ tự mã phát triển


8

Tôi đang phát triển dự án đầu tiên của mình bằng cách sử dụng phát triển dựa trên thử nghiệm. Tôi đang sử dụng Zend Framework và PHPUnit.

Hiện tại dự án của tôi đang ở phạm vi bảo hiểm 100% mã nhưng tôi không chắc tôi hiểu theo thứ tự nào tôi phải viết mã của mình.

Tôi có nên viết bài kiểm tra của mình ĐẦU TIÊN với những gì đối tượng của tôi dự kiến ​​sẽ làm, hoặc viết các đối tượng của tôi và sau đó kiểm tra chúng không?

Tôi đã làm việc để hoàn thành một bộ điều khiển / mô hình và sau đó viết một bài kiểm tra cho nó nhưng tôi không chắc đây có phải là TDD không.

Có lời khuyên nào không?

Ví dụ, tôi đã viết plugin Auth và trình điều khiển Auth của mình và kiểm tra xem chúng có hoạt động tốt trong trình duyệt của tôi không; sau đó tôi ngồi viết các bài kiểm tra cho họ, điều đó chứng tỏ rằng có một số lỗi logic trong mã đã hoạt động trên trình duyệt.

Câu trả lời:


20

Kiểm tra trước. TDD cũng được IOW gọi là "phát triển thử nghiệm đầu tiên".

Những gì bạn đã làm việc không phải là TDD.

TDD là 1-2-3:

  1. Viết một bài kiểm tra thất bại.
  2. Làm cho nó vượt qua (cam kết bất kỳ tội lỗi và các phím tắt trong quá trình này).
  3. Loại bỏ trùng lặp (logic, không chỉ vật lý).

Nói cách ngắn gọn, điều này cũng được quảng cáo là "làm cho nó thất bại / làm cho nó hoạt động / làm cho nó đúng".

Thêm vào cuốn sách tuyệt vời của Kent Beck Phát triển dựa trên thử nghiệm theo ví dụ.


11
+1 Ba bước này còn được gọi là "Red-Green-Refactor".
Fenton

2
Làm cho nó vượt qua có nghĩa là: Chỉ viết rất nhiều mã mà nó vượt qua, không hơn! Điều đó khá quan trọng.
ollins

2
từng được gọi là Phát triển Đầu tiên Thử nghiệm, nhưng điều đó gây hiểu lầm: không phải là viết bài kiểm tra của bạn trước, mà là để cho các bài kiểm tra của bạn thúc đẩy thiết kế và phát triển. Viết bài kiểm tra của bạn trước tiên chỉ đơn giản là một điều kiện tiên quyết cho điều đó - làm thế nào các bài kiểm tra của bạn có thể thúc đẩy bạn nếu chúng chưa tồn tại? Nhưng bạn có thể viết bài kiểm tra của mình trước mà vẫn không để chúng điều khiển bạn, và sau đó bạn không làm TDD.
Jörg W Mittag

3
@deltree erm ... Tôi không đồng ý với mọi tuyên bố của bạn!
Froome

2
ngoại trừ "bảo hiểm mã! = TDD": p
Froome
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.