Test code: assert, assertThrows and assertDoesNotThrow

The complete source of testing_assertions_tests.ek9, compiled by the EK9 compiler. Shown on testing.html.

#!ek9
defines module site.testing.assertions.tests

  references
    site.testing.assertions::checkedDivide

  defines program

    @Test
    CheckDivision()
      result <- checkedDivide(10, 2)
      assert result?          //Check result is set (not unset)
      assert result == 5      //Check result equals the expected value

    @Test
    CheckDivisionByZero()
      assertThrows(Exception, checkedDivide(10, 0))

    @Test
    CheckAndInspectException()
      caught <- assertThrows(Exception, checkedDivide(10, 0))
      assert caught.reason() == "division by zero"

    @Test
    CheckSafeDivision()
      assertDoesNotThrow(checkedDivide(10, 2))

    @Test
    CheckSafeDivisionResult()
      //assertDoesNotThrow gives nothing back: check the value with its own assert
      assertDoesNotThrow(checkedDivide(10, 2))
      result <- checkedDivide(10, 2)
      assert result == 5

Download testing_assertions_tests.ek9