Fork me on GitHub
#clojure-uk
<
2016-08-15
>
agile_geek06:08:01

I'm not sure if it's the relief of only having to put up with one of most frustrating jobs I've ever done for another week or the fear that I won't get a contract after this one but my writers block from the weekend has gone and I'm hammering out my latest blog.

guy07:08:46

:thumbsup:

agile_geek07:08:47

This blog is going to be mammoth (or possible Mastodon @otfrom?). I'm only approx half way thru and this is just part one of a series of brain dumps on how I do design. Needs heavy editing after I've got it down. I may be taking my laptop on Holiday with me to finish it. No Clojure in it though 😦

agile_geek08:08:11

Someone pick a Clojure subject of the day please.

guy08:08:35

testing in clojure?

agile_geek08:08:36

guy: Glib answer: Do some! More expansively, what specifically do you want to discuss?

guy08:08:39

testing frameworks in clojure and which ones are good. I’ve always used quite an old library with clojure.test but am looking for something new.

guy08:08:22

if that makes sense?

agile_geek08:08:39

Sure. I had a bit of a flirtation with Midje for a while as I liked the readability of it. However, it's very heavily dependent on macro's that don't compose well and if you use REPL based tooling and things like CIDER Midje is not well supported.

agile_geek08:08:06

I want to look at Expectations but when I briefly looked at it over a year ago again the tooling support let it down.

agile_geek08:08:25

I use test.check for property based (generative) testing but I find that supplementary to example based testing. If you're interested I wrote a couple of blogs on it at the beginning of the year.

agile_geek08:08:54

Over to others for their favourites!

glenjamin09:08:36

I like speclj and expectations, my preferred style involves an autotest runner that runs tests on file change, and integrates with growl.

guy09:08:54

@agile_geek: sure whats the link?

dominicm09:08:00

This might be interesting for those frustrated with midje

guy09:08:22

@glenjamin: dumb question, have you tried using speclj with https://github.com/stuartsierra/component ?

glenjamin09:08:40

i haven’t - only used it a few years ago

guy09:08:02

kk no worries

agile_geek09:08:09

@glenjamin: I like the river analogy 'flowing' through that blog. Cool (and no doubt refreshing!)

glenjamin09:08:35

the motivating example for me is (assuming no weird call-by-reference stuff)

glenjamin09:08:21

a = 1
f(a); // a is 1
b = “123”
g(b); // b is “123”
c = [4, 5, 6]
h(c); // c could be anything

glenjamin09:08:33

in pretty much every mainstream language

agile_geek09:08:18

Yep. The defining characteristic of Clojure for me is that state changes become explicit.

agile_geek09:08:43

The most annoying characteristic is that lazy vs strict evaluation isn't!