2012-11-03 19 views
6

Đây là kiểm tra tính chính xác bởi vì tôi thấy điều này đúng trong mã của chúng tôi. Không giống như mã chức năng của chúng tôi, các thử nghiệm của GUIs stateful có một số lượng không đáng kể trọng lượng do thiết lập nhà nước, phân tích trường hợp tổ hợp, và mocking/giả mạo hàng xóm/cộng tác viên/người nghe/etc. Tui bỏ lỡ điều gì vậy? Cảm ơn phản hồi của bạn.Các thử nghiệm đơn vị của tôi về các thành phần GUI có chứa nhiều dòng hơn mã được thử nghiệm không?

Ghi chú:

  • Các thử nghiệm đang chạy trong JVM, tất cả mọi thứ là một POJO.
  • Cho đến nay, chúng tôi đã nhận được một số đơn giản hóa bằng cách tăng kích thước đơn vị: thử nghiệm nhiều phần được dán lại với nhau.

Ghi chú mới:

  • Chúng tôi đang sử dụng JUnit và Mockito.
+0

bạn có thể muốn bao gồm api/suite bạn đang sử dụng – pstanton

+0

Tôi nghĩ chung, trừ khi mã được thử nghiệm rất đơn giản và nhỏ gọn, kiểm tra đơn vị có xu hướng lớn hơn rất nhiều so với mã họ kiểm tra. Câu hỏi thực sự là: là một thử nghiệm đơn vị mỗi widget của GUI của bất kỳ giá trị nào? Cá nhân tôi không nghĩ như vậy, nhưng những người khác có thể không đồng ý. – biziclop

Trả lời

5
  1. Tránh trùng lặp mã. Bạn nên trích xuất mã thiết lập và hành động phổ biến
  2. Tìm kiếm cấu trúc phân cấp. Đừng viết một kịch bản thử nghiệm lớn. Nhóm các dòng chung với nhau và trích xuất chúng thành một phương thức có tên có ý nghĩa. Tiến hành xây dựng kịch bản thử nghiệm nhiều lớp
  3. Xem xét các công cụ tốt hơn. cucumber, FEST assertions, Scala hay Groovy như kiểm tra DSL (ngay cả khi bạn không sử dụng chúng trong mã sản xuất), mockito ...

Bên cạnh đó, mối quan hệ giữa số lượng dây chuyền sản xuất và kiểm tra mã là không liên quan. Tôi có thể dễ dàng tìm thấy một ví dụ về đoạn mã cực ngắn có nhiều trường hợp cạnh mà nó đòi hỏi hàng chục bài kiểm tra.

Và một (tôi nhấn mạnh) real-life example of SQLite:

[...] thư viện bao gồm khoảng 81,3 KSLOC mã C. [...] Để so sánh, dự án có 1124 lần mã kiểm tra và tập lệnh thử nghiệm - 91421.1 KSLOC.

Đúng vậy, đó là khoảng 1100 dòng mã thử nghiệm cho mỗi dòng mã sản xuất.

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