V1.Test
The following combinators represent types that can be used with the check
functions below.
module type TESTABLE = sig ... end
TESTABLE
provides an abstract description for testable values.
val testable : 'a Fmt.t -> ( 'a -> 'a -> bool ) -> 'a testable
testable pp eq
is a new testable
with the pretty-printer pp
and equality eq
.
val pp : 'a testable -> 'a Fmt.t
pp t
is t
's pretty-printer.
val equal : 'a testable -> 'a -> 'a -> bool
equal t
is t
's equality.
val bool : bool testable
bool
tests booleans.
val int : int testable
int
tests integers.
val int32 : int32 testable
int32
tests 32-bit integers.
val int64 : int64 testable
int64
tests 64-bit integers.
val float : float -> float testable
float
tests floats with specified absolute error.
val char : char testable
char
tests characters.
val string : string testable
string
tests OCaml strings.
val bytes : bytes testable
bytes
tests OCaml bytes.
val unit : unit testable
unit
tests unit values (useful for functions with side-effects).
slist t comp
tests sorted lists of t
s. The list are sorted using comp
.
result t e
tests t
s on success and e
s on failure.
triple a b c
tests triples of a
s, b
s and c
s.
val of_pp : 'a Fmt.t -> 'a testable
of_pp pp
tests values which can be printed using pp
and compared using Stdlib
.compare
val pass : 'a testable
pass
tests values of any type and always succeeds.
val reject : 'a testable
reject
tests values of any type and always fails.
neg t
is t
's negation: it is true
when t
is false
and it is false
when t
is true
.
Functions for asserting various properties within unit-tests. A failing assertion will cause the testcase to fail immediately.
module Source_code_position : sig ... end
type '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.
val check : ( 'a testable -> string -> 'a -> 'a -> unit ) extra_info
Check that two values are equal.
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.
val check' :
( 'a testable -> msg:string -> expected:'a -> actual:'a -> unit ) extra_info
Check that two values are equal (labeled variant of check
).
val fail : ( string -> 'a ) extra_info
Simply fail.
val failf :
( ( 'a, Stdlib.Format.formatter, unit, 'b ) Stdlib.format4 -> 'a ) extra_info
Simply fail with a formatted message.
val check_raises : ( string -> exn -> ( unit -> unit ) -> unit ) extra_info
Check that an exception is raised.