首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OCaml OUnit括号示例:设置和拆卸

OCaml OUnit括号示例:设置和拆卸
EN

Stack Overflow用户
提问于 2015-03-29 23:11:58
回答 1查看 487关注 0票数 2

我并不真正了解如何在OUnit (第2版)中使用括号设置和拆卸。有人想提供一个完整的例子吗?

下面是OUnit2.bracket函数文档:

代码语言:javascript
复制
val bracket : (test_ctxt -> 'a) ->
       ('a -> test_ctxt -> unit) -> test_ctxt -> 'a

bracket set_up tear_down test_ctxt set up an object 
and register it to be tore down in test_ctxt.

您设置了这样一个测试套件:

代码语言:javascript
复制
let test_suite =
  "suite" >::: [
    "test1" >:: test1_fun
  ]

然后像这样运行:

代码语言:javascript
复制
let _ =
  run_test_tt_main test_suite

在这个工作流中,我应该把括号放在哪里?

链接到OUnit文档

用于ounit-2.0.0/examples版本1的ounit-2.0.0/examples测试括号中的文件OUnit,所以这是无用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-30 00:00:08

好的,在看了这个文件后知道了:TestLog.ml

此示例将在每次测试后系统地销毁哈希表,将其作为一个解压缩函数。

代码语言:javascript
复制
open ListLabels (* map with label *)

let test_sentence test_ctxt =
  assert_equal "Foo" "Foo"

(** In my case, clear a hashtable after each test *)
let tear_down () test_ctxt =
  Hashtbl.clear Globals.flags_tbl

(** List of test cases as (name, function) tuples *)
let test_list = [
  "sentence", test_sentence;
]

(** Test suite for all tags *)
let tag_test_suite =
  "tags" >::: (map test_list ~f:(fun (name, test_fn) ->
    name >:: (fun test_ctxt ->
      bracket ignore tear_down test_ctxt;
      test_fn test_ctxt
    )
  ))
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29336082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档