Swift - Test-Driven Development (TDD) - Chapter 1 - Part 3 - Các lưu ý với Xcode
Swift - Test-Driven Development (TDD) - Chapter 1 - Part 3 - Các lưu ý với Xcode 1. Các lưu ý cơ bản Navigate đến phần test, các bạn bấm zô cái button như trong hình: Chỉ xem test failed, không xem test pass, bấm zô cái button như trong hình: Xem kết quả, chi tiết bấm zô cái ...
Swift - Test-Driven Development (TDD) - Chapter 1 - Part 3 - Các lưu ý với Xcode
1. Các lưu ý cơ bản
Navigate đến phần test, các bạn bấm zô cái button như trong hình:
Chỉ xem test failed, không xem test pass, bấm zô cái button như trong hình:
Xem kết quả, chi tiết bấm zô cái button sau:
Để xem kết quả cụ thể từng test case, bấm vào lần run đó, nhìn qua bên phải:
Để run tất cả test cases: Command + U, Product -> Test, hoặc click biểu tượng màu xanh chỗ class
Để run 1 specific test case: Tương tự, click vào cái ô phía trước mỗi test case hoặc ở bên trái, chỗ xem kết quả, click vào biểu tượng màu xanh/ đỏ nếu failed:
Để run 1 nhóm test cases, các bạn làm theo như trong hình sau:
Bấm vào scheme trên toolbar (biểu tượng giống cái compa ấy)
Bấm tiếp vào Edit Scheme... -> Chọn Test
Bấm và chọn các test cases mong muốn, mặc định là selected all:
2. setUp() and tearDown() methods
Chúng ta đã thấy setUp() and tearDown() methods ở trước đó. Trong ví dụ trước, ta đã thấy được setUp() để init ViewControllerViewController. Trước mỗi test case nó sẽ được khởi tạo để dùng cho việc run. Những gì ta thay đổi ở mỗi test case riêng biệt không ảnh hưởng đến những test case khác.
tearDown() method được chạy sau mỗi lần gọi. Sử dụng tearDown() để cleanup hoặc việc gì đấy tương tự.
2. Debugging tests
Chắc cũng có lúc bạn sẽ cần debug phần code tests. Cách debug cũng như bình thường vậy. Ta chỉnh sửa code 1 chút để fail như sau:
func test_MakeHeadline_ReturnsStringWithEachWordStartCapital2() { let input = "Here is another Example" let expectedOutput = "Here iS Another Example" let headline = viewController.makeHeadline(from: input) XCTAssertEqual(headline, expectedOutput) }
Đặt breakpoint ở dòng XCTAssertEqual. Và xem thử:
po tức là print object
3. Breakpoint làm dừng test failure
Xcode có 1 cách để breakpoint. Một khi cái breakpoint này được set, test sẽ dừng lại ở nơi nó bị failed, và 1 debug section sẽ run lên.
Thông thường đây không phải là cái mình muốn ở TDD, vì failing tests xảy ra là bình thường và mình cũng không cần biết nguyên do. Chỉ nên dùng khi đã xong refactor và chạy lại regression.
- Bước 1: Bấm vào icon như trong hình
- Bước 2: Ở phía dưới
Kết quả sau khi run lên bạn sẽ thấy, thanh kết quả tạm dừng
và phần breakpoint hiển thị ở phần sai:
Để run lại thì cũng có nhiều cách, mình giới thiệu một cách:
Product -> Perform Action -> Test "test_MakeHeadline_ReturnsStringWithEachWordStartCapital2()" Again hoặc ctrl + option + command + G