我注意到 Monocle 实现了用于测试库内部的镜头定律。它们似乎很好地概括和模块化。我试图用它们来测试我自己的镜头,但我迷失在依赖丛林中。有没有人尝试过这样做,并可以发布一个例子?该文件似乎根本没有谈论法律。谢谢你。
详细地说,这是我正在尝试做的事情(摸索,不确定我是否使用预期的方式来使用 API):
it should "pass the LensLaws" in check {
forAll {(c: (String,Int), a: String) =>
new monocle.law.LensLaws(l).setGet(c,a) } }
其中 l 是 Monocle 镜头,在范围内可见。我收到以下错误消息:
No implicit view available from monocle.internal.IsEq[String] => org.scalacheck.Prop
据我所见,setGet 法则构造了一个 IsEq 对象,但我无法找到如何将其转换为 Prop(或布尔值)。
我还可以看到该框架正在使用函数 checkAll 来同时测试所有 LensLaws,但我也无法让它在我自己的代码中工作。任何帮助表示赞赏。