Skip to content

Repository files navigation

CheckL

Why write programs in Common Lisp but tests like Java?

My workflow for writing Common Lisp tends to be like this:

  • Write a bit of lisp, perhaps a function, class, or structure
  • Write a snippet in a scratch buffer to test
  • Fix if necessary and repeat

Testing is already inherent in this process, all we need is a little bit of Common Lisp magic to take advantage of it. Thus, CheckL:

(defunfoo ()
(+11))
(check () (foo)) ;; => 2
(defunfoo ()
(+12))
(check () (foo))
|
v
Result 0 has changed: 3
Previous result: 2
[Condition of typeCHECKL::RESULT-ERROR]
Restarts:
0: [USE-NEW-VALUE] The new value is correct, use it from now on.
1: [SKIP-TEST] Skip this, leaving the old value, but continue testing
2: [RETRY] Retry SLIME interactive evaluation request.
3: [*ABORT] Return to SLIME's top level.
4: [TERMINATE-THREAD] Terminate this thread (#<THREAD "worker" RUNNING {100586AB13}>)

See the full documentation for more details!

About

Why write programs in Common Lisp but tests like Java? Meet CheckL!

Resources

Stars

47 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages