简体   繁体   中英

How to create my own checker in Midje?

I'm using Midje for a project. I've tried to find in the wiki how could I create my own checker, but couldn't find it.

In my case, I want to compare if two images are equal. But it could be that I just want to compare some properties of the file, as it's size, perhaps a couple of pixels. Perhaps the "equality" would be a bit flexible, hence the need of a personalised checker.

How can I do it?

Thanks.

There is a wiki page in midje github repo describing how to define your own checkers.

A checker used on the right hand side of an arrow is a plain predicate function accepting the result of left hand side.

In your example scenario, you can just create your own function for checking a file:

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

Then you can use it in your tests:

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

If you would like use checkers on the left hand side of an arrow you need to follow instructions on another wiki page .

And if you are not satisfied by the format of failure messages generated when using plain predicate functions, you can use some tools described on wiki page discussing chatty checkers .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM