原因:错误:bs-jest的未绑定值not__

时间:2019-01-12 11:51:21

标签: reason bucklescript bs-jest

尝试测试lit-html方法html的绑定

open Jest;

let write = () => LitHtml.html("<div></div>");

open Expect;

describe("LitHtml", () =>
  test("#html", () =>
    expect(() =>
      write()
    ) |> not_ |> toThrow
  )
);

有人告诉我这个隐秘的错误:

Error: Unbound value not__
Hint: Did you mean not_?
Jest.Expect.plainPartial('a) => Jest.Expect.invertedPartial('a)

但请按照提示清楚地写上not_,而不是not__

我尝试绑定:

[@bs.module "LitHtml"] [@bs.val]
external html: string => Js.nullable(string) = "html";
let html = htmlStr => html(htmlStr) |> Js.Nullable.toOption;

感谢您的协助。刚开始使用ReasonML;)

1 个答案:

答案 0 :(得分:1)

类似的原因似乎是由大量未记录的更改in Reason 3.3.4引起的。我认为它可能隐藏在PR #2197中。

not是OCaml中的关键字,这就是Expect.not_如此命名的原因。而且,此更改似乎是将Reason中的not“粉碎”(即翻译)为OCaml中的not_,然后是not_not__,依此类推。

因此,解决方案只是用not_替换代码中not的所有实例。或者,您可以将bs-jest更新为0.4.7,在其中我已将not__添加为not_的别名,因此可以使用not或{{1} }。