[racket] variables within macros

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Jan 20 12:13:30 EST 2013


On Jan 20, 2013, at 6:37 AM, Tim Brown wrote:

>> On 01/19/2013 06:31 PM, Matthias Felleisen wrote:
> [quoting depth out by one]
>>> On Jan 18, 2013, at 12:36 PM, Tim Brown wrote:
>>> Here is one way to justify this answer. You really may wish to
>>> make define/test orthogonal to which testing framework you use:
>>>  -- rackunit
>>>  -- test engine
>>>  -- the Eli tester
> 
> Which is the recommended testing framework for Racket. In this example
> we want to keep ourselves separated from a particular framework... but
> practically, which should we be using.


Of the above, I use 
 rackunit for my projects 
and
 test engine for the teaching languages 
 
Eli's testing library is in some state of development. Some dev 
people are using it. Realistically rackunit is most widely used
and has the most comprehensive support (docs, test suite, gui 
support if you like that). 

It is impossible to parameterize over these testing frameworks
because they are provided as modules (simple libraries) not units
(parameterizable libraries). Plus their syntactic extensions are
somewhat incompatible. 

What you can do is hide the specific choice in your own testing
library by designing your own test specification language and 
expanding the tests into your favorite testing framework, e.g., 


 (define/test (f x ...) 
   (test (lhs = rhs) ...)
   e ...)

and expand this to 

 ... (check-equal? lhs rhs) .. 

-- Matthias


Posted on the users mailing list.