Описание тега ounit
С OUnit, как и с JUnit, вы можете легко создавать тесты, давать им имена, группировать их в наборы и выполнять их, при этом платформа автоматически проверяет результаты.
Основной принцип набора тестов - наличие файла test.ml
который будет содержать тесты и тестируемый модуль OCaml с именем foo.ml
.
файл foo.ml
:
(* The functions we wish to test *)
let unity x = x;;
let funix ()= 0;;
let fgeneric () = failwith "Not implemented";;
Суть теста - убедиться, что тестируемая функция имеет ожидаемое поведение. Вы проверяете поведение, используя функции assert. Самый простой -OUnit2.assert_equal
. Эта функция сравнивает результат функции с ожидаемым результатом.
Наиболее полезные функции:
OUnit2.assert_equal
базовая функция утвержденияOUnit2.(>:::)
определить список тестовOUnit2.(>::)
назвать тестOUnit2.run_test_tt_main
для запуска набора тестов, который вы определяетеOUnit2.bracket_tmpfile
которые создают временное имя файла.OUnit2.bracket_tmpdir
которые создают временный каталог.
файл test.ml
:
open OUnit2;;
let test1 test_ctxt = assert_equal "x" (Foo.unity "x");;
let test2 test_ctxt = assert_equal 100 (Foo.unity 100);;
(* Name the test cases and group them together *)
let suite =
"suite">:::
["test1">:: test1;
"test2">:: test2]
;;
let () =
run_test_tt_main suite
;;
И скомпилируйте модуль
$ ocamlfind ocamlc -o test -package oUnit -linkpkg -g foo.ml test.ml
Исполняемый файл с именем "test
"будет создан. При запуске он дает следующий результат:
$ ./tests
..
Ran: 2 tests in: 0.00 Seconds
OK
Когда используешь OUnit2.run_test_tt_main
, ненулевой код выхода сигнализирует, что набор тестов не прошел успешно.
( Источник)