2012-01-16 39 views
9

Tôi đang sử dụng PHPUnit (3.6.7) để kiểm tra và cung cấp các báo cáo bảo hiểm mã trên ứng dụng của mình, mọi thứ được thiết lập và hoạt động như mong đợi.Sử dụng mã vùng PHPUnit với giao diện

Tôi có bảo hiểm đầy đủ cho tất cả mã ngoại trừ giao diện của tôi, mặc dù tôi có các thử nghiệm cho các lớp triển khai giao diện. Báo cáo chỉ ra rằng giao diện không được thực thi

Có cách nào để che các giao diện không? Hoặc là nó là một trường hợp nói với PHPUnit bỏ qua chúng để bảo hiểm mã?

Trả lời

5

Bạn có thể chỉ định các thử nghiệm cho một phương thức bao gồm lớp bê tông từ lớp/giao diện trừu tượng gốc.

Xem Specifying Covered Methods phần trong Code Coverage Analysis chương trong sách hướng dẫn.

Trong cùng một chương, bạn cũng sẽ tìm cách bỏ qua các khối mã hoặc toàn bộ tệp từ phân tích phạm vi mã.

+1

Hoàn hảo! Cảm ơn bạn. Đối với bất kỳ ai khác gặp phải điều này, bạn cần @covers Class_Name trong bạn kiểm tra khối tài liệu lớp học –

+0

Cập nhật liên kết đến trang hướng dẫn sử dụng phiên bản mới nhất: https://phpunit.de/manual/current/en/code-coverage-analysis.html – shevron

+0

@shevron: Cảm ơn bạn! Tôi đã cập nhật liên kết trong câu trả lời của tôi ngay bây giờ. – Mchl

1

Giao diện không chứa mã thực thi, vì vậy không có gì để kiểm tra.

+0

Tôi không cố gắng kiểm tra chúng trực tiếp, mặc dù chúng được sử dụng với assertInstanceOf(), tôi chỉ muốn chúng trong phạm vi mã khi chúng đang được "sử dụng" –

5

Cũng giống như một câu trả lời thêm:

Phiên bản tiếp theo của PHPUnit (3.7.) sẽ bỏ qua tất cả các giao diện cho vùng phủ sóng theo mặc định.

Vì vậy, bạn sẽ không cần sử dụng bất kỳ loại bao gồm nào hoặc //@codeCoverageIgnore cách để làm việc xung quanh.

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