> Note that in his "decluttering" example, his module+ submodule
> does a (require (submod "..")). It turns out that a submodule
> that does this will get the contracted identifiers instead of the
> original ones (since `require` is allowed to overwrite bindings
> from the module's base module).

Ah! I misunderstood it to be more complicated and thought I'd read
module* not module+.

But it's utterly simple.

In files that have many module+ forms interleaved with what they test,
I've already been putting a module+ near the top simply to require
rackunit:

(module+ test
  (require rackunit))

This simply needs to become:

(module+ test
  (require rackunit (submod "..")))

And bingo.

Awesome. Thank you.

On Tue, Mar 5, 2013 at 6:51 PM, Asumu Takikawa <as...@ccs.neu.edu> wrote:
> On 2013-03-05 17:48:51 -0500, Greg Hendershott wrote:
>> But it seems like the only choices are:
>>
>> - Keep using (provide (contract-out)) but switch back to lumping all
>> the tests together, in one module* (or even back to the old way of a
>> separate file).
>
> I think Matthias's solution was actually to let you use
> (provide (contract-out)) while still using module+ to group tests
> together.
>
> Note that in his "decluttering" example, his module+ submodule
> does a (require (submod "..")). It turns out that a submodule
> that does this will get the contracted identifiers instead of the
> original ones (since `require` is allowed to overwrite bindings
> from the module's base module).
>
> Cheers,
> Asumu
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to