One of the goals is to create extensions that mimic each existing test-lib,
so that migrating to test2 just means changing your :requires.

But there are some tricky spots:

1. I don't fully understand how clojure.test's fixtures plays into its
ability to call test functions from within other test functions.

This probably just requires lots of experimenting and taking extensive
notes. Tedious but possible.


2. clojure.test's once-fixtures can't be done with the current incarnation
of the SPEC.

We may be able to add a simple special-case to the Runner and Test-fn
portion of the spec to make it work.

I'm just worried about being too biased toward clojure.test in this, and
hard-coding something into the spec that no other extension will ever
need/want.


3. Midje has the ability to use the infix => anywhere any number of times
within (fact), which means we can't implement (fact) as a simple
macro/function.

We can probably just do whatever Midje itself does to make this work.


4. Both Expectations and Midje allow making assertions at the top-level,
but the spec only lets them exist within a test-fn's execution.

A possible solution is to make (expect) and (fact) have two roles: the
assertion, as well as conditionally def'ing vars if they aren't already
inside one.

Another solution is to change the spec to allow making assertions anywhere
at any time. Several people expressed concerns about the undue complexity
this would add, and I agree.



On Sat, Jun 8, 2013 at 10:14 AM, Steven Degutis <sbdegu...@gmail.com> wrote:

> Test2 is a new testing lib for Clojure, where the power is its simplicity,
> extensibility, and a 
> SPEC<https://github.com/evanescence/test2/blob/master/SPEC.md> much
> like Ring's.
>
> Github: https://github.com/evanescence/test2
>
> Some background: It came out of 
> discussions<https://github.com/evanescence/test2/wiki/Communal-Brainstorming> 
> with
> the smart folks in #clojure, who were frustrated with the inflexibility of
> existing libs, and intended this to be the spiritual successor to
> clojure.test. We wanted something that was still simple like clojure.test,
> but could be extended externally much more easily in case you wanted
> features found in clojure.test, Midje, Speclj, or Expectations, or whatever
> else.
>
> This is a pre-ANN because it's more of a call for extensions. I've written
> one last night, 
> test2-autorunner<https://github.com/evanescence/test2-autorunner>,
> which took about an hour. This should give some idea of how easy it is and
> how well-designed the SPEC was by the smart folks of #clojure. There are
> some ideas at the bottom of the wiki, but of course any extensions are
> encouraged.
>
> -Steven
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to