package alcotest

  1. Overview
  2. Docs

Module V1.TestSource

Testable values

The following combinators represent types that can be used with the check functions below.

Sourcemodule type TESTABLE = sig ... end

TESTABLE provides an abstract description for testable values.

Sourcetype 'a testable = (module TESTABLE with type t = 'a)

The type for testable values.

Sourceval testable : 'a Fmt.t -> ('a -> 'a -> bool) -> 'a testable

testable pp eq is a new testable with the pretty-printer pp and equality eq.

Sourceval pp : 'a testable -> 'a Fmt.t

pp t is t's pretty-printer.

Sourceval equal : 'a testable -> 'a -> 'a -> bool

equal t is t's equality.

Sourceval bool : bool testable

bool tests booleans.

Sourceval int : int testable

int tests integers.

Sourceval int32 : int32 testable

int32 tests 32-bit integers.

Sourceval int64 : int64 testable

int64 tests 64-bit integers.

Sourceval float : float -> float testable

float tests floats with specified absolute error.

Sourceval char : char testable

char tests characters.

Sourceval string : string testable

string tests OCaml strings.

Sourceval bytes : bytes testable

bytes tests OCaml bytes.

Sourceval unit : unit testable

unit tests unit values (useful for functions with side-effects).

Sourceval list : 'a testable -> 'a list testable

list t tests lists of ts.

Sourceval seq : 'a testable -> 'a Seq.t testable

seq t tests sequence of ts.

Sourceval slist : 'a testable -> ('a -> 'a -> int) -> 'a list testable

slist t comp tests sorted lists of ts. The list are sorted using comp.

Sourceval array : 'a testable -> 'a array testable

array t tests arrays of ts.

Sourceval option : 'a testable -> 'a option testable

option t tests optional ts.

Sourceval result : 'a testable -> 'e testable -> ('a, 'e) result testable

result t e tests ts on success and es on failure.

Sourceval pair : 'a testable -> 'b testable -> ('a * 'b) testable

pair a b tests pairs of as and bs.

Sourceval triple : 'a testable -> 'b testable -> 'c testable -> ('a * 'b * 'c) testable

triple a b c tests triples of as, bs and cs.

Sourceval of_pp : 'a Fmt.t -> 'a testable

of_pp pp tests values which can be printed using pp and compared using Stdlib.compare

Sourceval pass : 'a testable

pass tests values of any type and always succeeds.

Sourceval reject : 'a testable

reject tests values of any type and always fails.

Sourceval neg : 'a testable -> 'a testable

neg t is t's negation: it is true when t is false and it is false when t is true.

Sourceval map : ('b -> 'a) -> 'a testable -> 'b testable

map f t lift a 'a testable to a 'b testable, converting 'b to 'a.

Assertion functions

Functions for asserting various properties within unit-tests. A failing assertion will cause the testcase to fail immediately.

Sourcemodule Source_code_position : sig ... end
Sourcetype 'a extra_info = ?here:Source_code_position.here -> ?pos:Source_code_position.pos -> 'a

The assertion functions optionally take information about the location at which they are called in the source code. This is used for giving more descriptive error messages in the case of failure.

Sourceval check : ('a testable -> string -> 'a -> 'a -> unit) extra_info

check testable msg expected actual checks that two values are equal.

msg is printed if the check fails.

If check isn't in a tail-call position, Alcotest may guess the location of the check. Otherwise, use extra_info to report the location.

Sourceval check' : ('a testable -> msg:string -> expected:'a -> actual:'a -> unit) extra_info

Check that two values are equal (labeled variant of check).

Sourceval fail : (string -> 'a) extra_info

Simply fail.

Sourceval failf : (('a, Format.formatter, unit, 'b) format4 -> 'a) extra_info

Simply fail with a formatted message.

Sourceval check_raises : (string -> exn -> (unit -> unit) -> unit) extra_info

Check that an exception is raised.

Sourceval match_raises : (string -> (exn -> bool) -> (unit -> unit) -> unit) extra_info

match_raises msg exception_is_expected f Runs f (), and passes the raised exception to exception_is_expected. The check fails when no exception is raised, or exception_is_expected returns false.

Sourceval skip : unit -> 'a

Skip the current test case.

  • since 1.7.0
OCaml

Innovation. Community. Security.