Derw
  • Derw
  • Roadmap
  • 📖Guides
    • Creating your first project
    • Installing packages
    • Compiling and running your code
    • Formatting
    • Repl and playground
    • Testing
  • ⚖️Fundamentals
    • Literals
    • Definitions
    • Types
    • Conditionals
    • Imports and exports
    • Comments
  • 🔧Building things
    • Web pages
    • REPLs
  • 🪛Contributing
    • Contribution flow
    • Working on the compiler
  • 💭Hypotheticals
    • Hypotheticals
    • Async / await
Powered by GitBook
On this page
  • Writing a test
  • Naming your file
  • Importing the testing functions
  • Writing your test
  • In-browser tests
  1. Guides

Testing

How to test your Derw code

PreviousRepl and playgroundNextLiterals

Last updated 2 years ago

Derw comes with a built-in test runner via derw test. The runner is based on , a test runner written in TypeScript.

To run tests, run `derw test` from the package directory
To watch use the --watch flag
  --watch :		Watch Derw files for changes
  --function string:		A particular function name to run
  --file string:		A particular file name to run
  --only-fails :		Only log failing tests
  -h, --help :		This help text

Writing a test

Naming your file

Your file must have the extension _test.derw to be picked up by the test runner.

Importing the testing functions

Testing functions are provided by the stdlib, which you can install via:

derw install --name derw-lang/stdlib --version main

These can then be imported like

import "./Test" exposing ( equals, notEquals )

Writing your test

A test function should be called testNameOfTest, and have the type a -> void. Test functions are automatically exported by the compiler.

testEmptySplit: a -> void
testEmptySplit =
    split "," ""
        |> equals [ "" ]

testSplit: a -> void
testSplit =
    split "," "a,b,c"
        |> equals [
        "a",
        "b",
        "c"
    ]

In-browser tests

When working with html, you may find yourself needing to test a repeated set of actions in the browser - and ensuring the correct data shows up. This can be done via package. It provides both a html element you can embed for results, and a console output. It is currently a work in progress, but if you're curious you can try it out.

📖
bach
html-test
console output
web output