Haskell:
Tests Schrijven

Hoe te:

Haskell gebruikt HUnit voor basis unit tests, en QuickCheck voor property-based tests. Hier is een snel voorbeeld van HUnit:

import Test.HUnit

testList :: Test
testList = TestList [TestCase (assertEqual "Moet getallen optellen" 4 (2 + 2)),
                     TestCase (assertEqual "Moet getallen aftrekken" 0 (2 - 2))]

main :: IO Counts
main = runTestTT testList

Voer het uit, en het toont:

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

Voorbeeld van QuickCheck:

import Test.QuickCheck

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

main :: IO ()
main = quickCheck prop_RevRev

Voorbeelduitvoer zou kunnen lezen:

+++ OK, 100 tests geslaagd.

Diepere Duik

Testen begon met vroege programmering, maar werd serieus met de opkomst van TDD in de jaren ‘00. Haskell’s pure functies maken het geweldig voor testen. Alternatieven voor HUnit/QuickCheck zijn doctest en Hedgehog. HUnit is vergelijkbaar met JUnit van Java. QuickCheck automatiseert het genereren van testcases, en controleert op eigenschappen die u definieert.

Zie Ook