如何在 Midje 中创建我自己的检查器?

How to create my own checker in Midje?

我在一个项目中使用 Midje。我试图在 wiki 中找到如何创建自己的检查器,但找不到。

在我的例子中,我想比较两个图像是否相等。但可能我只是想比较文件的某些属性,因为它的大小,可能是几个像素。也许 "equality" 会有点灵活,因此需要一个个性化的检查器。

我该怎么做?

谢谢。

midje github 存储库中有 a wiki page 描述了如何定义您自己的跳棋。

箭头右侧使用的检查器是接受左侧结果的普通谓词函数。

在您的示例场景中,您可以创建自己的函数来检查文件:

(defn filename-matches? [expected-name]
  (fn filename-matcher [actual-file]
    (= expected-name (.getAbsolutePath actual-file))))

然后你就可以在你的测试中使用它了:

(generate-file) => (filename-matches? "output.txt")

如果您想在箭头的左侧使用跳棋,您需要按照 another wiki page 上的说明进行操作。

如果您对使用普通谓词函数时生成的失败消息的格式不满意,您可以使用讨论 chatty checkers.

的维基页面上描述的一些工具