About lonnnnng tests

Markus Gaelli gaelli at emergent.de
Mon Oct 4 20:02:30 UTC 2004


Hi Romain,

>>
>> And on the flip side, it might be nice to have a QuickTestCase too, 
>> that can be run all the time - like, every time you accept a 
>> method...
>>
>
> Hey, neat idea ... I got to put that on my todo list for BrowseUnit ;-)
>
So do you plan to connect that QuickTestCase - I think I call it 
one-method test ;-) -
to the method under test?

A one-method test is dedicated to one method and, as it is _explicitly_ 
linked to that method, could be executed as soon as this method is 
changed/saved.

The most lightweight solution to explicitly create this link (I can 
think of ), would be to denote _the method under test_ in the test 
using a comment just before the call of the method under test: (here 
"test")

Example:
===========
AccountTest  >> testWithdrawOkFrom123
   "setup"
   |anAccount |
   anAccount:= AccountTest new testDeposit100On123.

   "test"
   anAccount withdraw: 60.

   "asserts"
   self assert: anAccount balance = 40.

   ^anAccount
===========
This is one part of the story. Another is, that tests could be 
composed, so that if its tests are called by other tests, this other 
tests should be executed:

In the example above only "AccountTest >> testWithdrawOkFrom123" would 
be executed if I changed "Account >> deposit",
as it calls "AccountTest  >> testDeposit100On123", which _is_ focusing 
on "Account >> deposit".

So composed tests should be a QuickTestCase for all explicitly linked 
methods.

Or do you plan to denote the tests in the method itself?
I would prefer not, as you might run into problems with people who 
still :-) want to see their code independent of their tests, and who 
also want to rename a method without having to change the 
RefactoringBrowser, so that RB took denoting comments into account. 
(Above I can only use "test" and _not_ any name of a method to denote 
it...)

Actually I have some weeks to do a prototype for an Oopsla workshop 
with the nice name:
"Revival of Dynamic Languages" and I would like to use services and 
browse-unit. Would you mind if I did it? Or do you have other design 
issues / solutions in mind  I should know about?

My paper can be found on 
http://pico.vub.ac.be/~wdmeuter/RDL04/papers/Gaelli.pdf

Thanks a lot for your very nice work on Services and BrowseUnit.

Cheers,

Markus




More information about the Squeak-dev mailing list