Elm:
Skriva tester

Hur man gör:

Elm använder paketet elm-explorations/test för att skriva enhetstester och fuzz-tester. Börja med att lägga till paketet i ditt projekt:

elm install elm-explorations/test

Skapa en testfil, säg tests/ExampleTest.elm, och importera testmodulerna. Här är ett enkelt test som verifierar funktionen add : Int -> Int -> Int:

module ExampleTest exposing (..)

import Expect
import Test exposing (..)
import YourModuleName exposing (add)

suite : Test
suite =
    describe "En enkel additionsfunktion"
        [ test "Att lägga till 2 och 3 ger 5" <| 
            \_ -> add 2 3 |> Expect.equal 5
        ]

För att köra dina tester behöver du elm-test:

npm install -g elm-test
elm-test

Detta kommer att kompilera dina tester och skriva ut resultaten i din terminal. För exemplet ovan ska utmatningen vara något i stil med:

TEST RUN PASSED

Duration: 42 ms
Passed:   1
Failed:   0

För ett mer komplext exempel, låt oss säga att du vill fuzz-testa add-funktionen för att säkerställa att den hanterar ett brett spektrum av heltalsinmatningar korrekt. Du skulle då modifiera din ExampleTest.elm som följer:

module ExampleTest exposing (..)

import Expect
import Fuzz exposing (int)
import Test exposing (..)
import YourModuleName exposing (add)

suite : Test
suite =
    describe "Testar add med fuzzning"
        [ fuzz int "Fuzz-testar add med slumpmässiga heltal" <| 
            \int1 int2 -> add int1 int2 |> Expect.equal (int1 + int2)
        ]

Kör elm-test igen för att se fuzz-testerna i aktion. Utmatningen kommer variera med slumpmässig inmatning men framgångsrika tester kommer att indikera inga misslyckanden:

TEST RUN PASSED

Duration: 183 ms
Passed:   100
Failed:   0

Dessa exempel visar hur man skriver och kör enkla enhets- och fuzz-tester i Elm, med paketet elm-explorations/test. Testning är en vital del av utvecklingsprocessen, som hjälper till att säkerställa att dina Elm-applikationer är tillförlitliga och bibehåller hög kvalitet.