Keep in mind too that since test.check/quick-check takes a property as an
argument, you can construct a property by simply closing over some
implementation. For example:
(defn make-prop
[impl]
(prop/for-all [...]
(= (impl ...) (other ...)))
And then test with different properties created with (make-prop ...).
Reid
On Friday, May 2, 2014 1:38:27 PM UTC-5, Brian Craft wrote:
>
> Wow, I never would have figured that out from the docs. Thanks.
>
> Just found a different problem with my solution: nested tests, as
> described in the docs, prevent the use of fixtures. You have to add
> test-ns-hook when using nested tests, and then fixtures aren't run.
>
> On Friday, May 2, 2014 11:05:56 AM UTC-7, Karsten Schmidt wrote:
>>
>> You can use the `testing` macro and wrap it in a function, which accepts
>> your type/protocol implementation or even individual protocol methods as
>> args. Example here:
>>
>> https://github.com/thi-ng/geom/blob/master/test/core.org#callable-contexts
>> On 2 May 2014 18:08, "Brian Craft" <[email protected]> wrote:
>>
>>> Thanks. I did something similar. I have different implementations per
>>> db, so use a global *db* var:
>>>
>>> (ct/deftest run-tests
>>> (matrix1)) ; matrix1 tests against *db*
>>>
>>> (ct/deftest test-h2
>>> (binding [*db* (h2/create-db2 "test" {:subprotocol "h2:mem"})]
>>> (run-tests)))
>>>
>>> (defn test-ns-hook []
>>> (test-h2))
>>>
>>> Clumsy, but seems to be the only option.
>>>
>>> On Friday, May 2, 2014 8:29:23 AM UTC-7, Chris Price wrote:
>>>>
>>>> I have been curious about this too. I was playing around with it a few
>>>> weeks ago and came up with this:
>>>>
>>>> https://github.com/cprice404/clj-shared-test-sandbox/blob/
>>>> master/test/shared_tests_foo/core_test.clj
>>>>
>>>> Which is pretty gross; it uses `binding` + a dynamic var in the shared
>>>> test namespace, and then it calls `clojure.test/run-tests` from inside of
>>>> a
>>>> `deftest`. I'm sure there's got to be a better way, but that was as far
>>>> as
>>>> I got in the small amount of time that I was able to spend on it.
>>>>
>>>> On Thursday, May 1, 2014 5:58:51 PM UTC-7, Brian Craft wrote:
>>>>>
>>>>> I have a number of tests that I would like to run against different
>>>>> implementations of a protocol. In clojure.test there doesn't appear to be
>>>>> a
>>>>> way to parameterize a test over the implementations. Is there a good way
>>>>> to
>>>>> do this?
>>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to [email protected]
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> 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 [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.