Hi Arne, Arne Babenhauserheide <arne_...@web.de> writes:
> I implemented doctests in Guile which allow writing SRFI-64 tests > directly in the docstring. Here’s a minimal example: > > > (import (examples doctests)) > > (define (one) > "(test 'foo > (test-equal 1 (one)))" > 1) I don't think that tests should go into doc strings, for a couple of reasons. First, doc strings already have a purpose, and that's for documentation. While it may sometimes be beneficial to include a few examples in the documentation, a full test suite does not, IMO, belong in the doc string. The other issue is that this would involve putting code directly into a quoted string literal, which causes several problems. One has to do with editor support for S-expressions. For users of Emacs Scheme mode and/or paredit, it would mean when writing the tests without the editor support that we are accustomed to. Additionally, if the test code involve string constants, then the embedded quotes would need to be escaped with backslashes, and any escaped characters within the strings would need double-backslashes, etc. Finally, putting code within a string literal entails a loss of the hygiene that has been so carefully developed in modern Scheme macro expanders. For these reasons, I'm strongly opposed to this style of testing. If you want to do something like this, I would suggest instead defining some macros like 'define-with-tests' that allow you to put the unit tests together with each definition. What do you think? Regards, Mark