Which Is PHPUnit Coverage Type, C0 Or C1 Or C2? #2 - GitHub

Skip to content Dismiss alert {{ message }} / phpunit-training-coverage Public
  • Notifications You must be signed in to change notification settings
  • Fork 5
  • Star 1
  • Code
  • Issues 6
  • Pull requests 5
  • Actions
  • Projects
  • Security
  • Insights
Additional navigation options New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Sign up for GitHub

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jump to bottom Which is PHPUnit coverage type, C0 or C1 or C2? #2 Open 3 tasks tuanpt-0634 opened this issue Jun 12, 2020 · 6 comments Open 3 tasks Which is PHPUnit coverage type, C0 or C1 or C2? #2 tuanpt-0634 opened this issue Jun 12, 2020 · 6 comments

Comments

@tuanpt-0634 Copy link Member

tuanpt-0634 commented Jun 12, 2020 edited Loading

Coverage type:

Type Name Description
C0 Statement coverage Tỉ lệ bao phủ câu lệnh
C1 Branch coverage Tỉ lệ bao phủ nhánh - Mỗi nhánh của if phải được test ít nhất 1 lần
C2 Condition Coverage Tỉ lệ bao phủ điều kiện - Mỗi điều kiện trong lên if đều được test 2 case: 1 là true 2 là false
  • 1. Dựa vào kết quả coverage của Issue How to get PHPUnit coverage? #1, kết luận PHPUnit coverage thuộc loại nào?
  • 2. Câu lệnh ở đây là lệnh trong function hay tính cả class property?
  • 3. Test case tests/C0/DumpExampleTest.php đã cover 100% C0 coverage, nhưng đã đủ test case cho class DumpExample chưa?
All reactions @taipt-0504 Copy link

taipt-0504 commented Jun 15, 2020

  1. Theo kết quả test thì hiện tại coverage đang thuộc C0 do khi test class DumpExample
  • Test đã chạy qua hết các lệnh của function examine.
  • Chưa đạt được C1 do funtion examine không có nhánh else.
  • Chưa đạt C2 do chưa test đk false cho funtion examine
  1. Câu lệnh chỉ tính lệnh trong function, không tính đến các class property.
👍 1 tuanpt-0634 reacted with thumbs up emoji 👀 1 tuanpt-0634 reacted with eyes emoji All reactions
  • 👍 1 reaction
  • 👀 1 reaction
@huongvnq-1722 Copy link

huongvnq-1722 commented Jun 15, 2020

  1. PHP Unit coverage thuộc loại C0, Vì:
  • Test đã chạy qua hết các câu lệnh của function examine
  • Chưa đạt được C1 do chưa test case else của function examine
  • Chưa đạt được C2 do điều kiện if mới chỉ được test case true, chưa được test case false
  1. Câu lệnh ở đây là lệnh trong function, không tính đến class property
🎉 1 tuanpt-0634 reacted with hooray emoji 👀 1 tuanpt-0634 reacted with eyes emoji All reactions
  • 🎉 1 reaction
  • 👀 1 reaction
@tuanpt-0634 Copy link Member Author

tuanpt-0634 commented Jun 15, 2020

@taipt-0504

Chưa đạt được C1 do funtion examine không có nhánh else

Em thấy chưa chuẩn lắm anh nhể, vì if thì luôn ngầm định có nhánh else.

if ($condition) { // ... }

=> 2 test cases: chạy vào trong block if và không chạy vào trong block if

if ($condition) { // ... } else { // ... }

=> 2 test cases: chạy vào trong block if và chạy vào trong block else

All reactions @tuanpt-0634 Copy link Member Author

tuanpt-0634 commented Jun 15, 2020

@taipt-0504 @huongvnq-1722 A/e update thêm câu 3 nhé

All reactions @nganltb-1258 Copy link

nganltb-1258 commented Jun 17, 2020

  1. C0 do đã phủ toàn bộ xử lý nhưng chưa chú ý đến điều kiện.
  2. Em không hiểu lắm class property là gì :p. Đang hiểu nó là kiểu getAttribute, ... có đúng không ạ?
  3. Đủ test case theo điều kiện C0 nhưng C1, C2 chưa đủ
👍 1 tuanpt-0634 reacted with thumbs up emoji All reactions
  • 👍 1 reaction
@tuanpt-0634 Copy link Member Author

tuanpt-0634 commented Jun 17, 2020 edited Loading

@nganltb-1258

  1. PHPUnit nó tính coverage là C0 (Statement coverage) ấy, chưa support tính C1, C2 coverage
  2. Ý anh là class property hay class field, VD như protected $fillable = []
  3. Trường hợp này 100% code coverage nhưng vẫn bị lack case đúng không, gây ra bug nếu ko test đủ
All reactions Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment Assignees No one assigned Labels None yet Projects None yet Milestone No milestone Development

No branches or pull requests

4 participants @taipt-0504 @tuanpt-0634 @nganltb-1258 @huongvnq-1722 You can’t perform that action at this time.

Từ khóa » C0 C1 C2 Coverage Là Gì