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

时间:2016-04-27 21:34:59

标签: clojure midje

我使用Midje进行项目。我试图在维基中找到我如何创建自己的检查程序,但无法找到它。

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

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:2)

在midje github repo中有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上的说明进行操作。

如果您对使用普通谓词函数时生成的失败消息的格式不满意,可以使用wiki页面上讨论的chatty checkers中描述的一些工具。