Haskell:
Viết các bài kiểm tra

Cách thực hiện:

Haskell sử dụng HUnit cho các unit test cơ bản, và QuickCheck cho các property-based test. Dưới đây là một ví dụ nhanh về HUnit:

import Test.HUnit

testList :: Test
testList = TestList [TestCase (assertEqual "Should add numbers" 4 (2 + 2)),
                     TestCase (assertEqual "Should subtract numbers" 0 (2 - 2))]

main :: IO Counts
main = runTestTT testList

Chạy nó, và nó hiển thị:

Cases: 2  Tried: 2  Errors: 0  Failures: 0

Ví dụ về QuickCheck:

import Test.QuickCheck

prop_RevRev :: [Int] -> Bool
prop_RevRev xs = reverse (reverse xs) == xs

main :: IO ()
main = quickCheck prop_RevRev

Kết quả mẫu có thể đọc là:

+++ OK, đã vượt qua 100 bài test.

Tìm hiểu sâu hơn

Testing bắt đầu từ sớm khi lập trình ra đời, nhưng trở nên nghiêm túc với sự phát triển của TDD vào những năm 2000. Các hàm thuần túy của Haskell làm cho nó trở nên tuyệt vời cho việc testing. Các lựa chọn thay thế cho HUnit/QuickCheck bao gồm doctest và Hedgehog. HUnit giống như JUnit trong Java. QuickCheck tự động tạo các trường hợp test, kiểm tra các tính chất mà bạn định nghĩa.

Xem thêm