Aaron Hinni [mailto:aaron / hinnispace.com] wrote: > > Well, here's my first major contribution to the Ruby world: > > Lapidary. It's a > > Ruby unit testing framework based largely on Smalltalk unit > > (as opposed to > > junit). You can read all about it at the home page, > > http://lapidary.sourceforge.net/, or better yet, download it at > > ftp://ftp1.sourceforge.net/lapidary/lapidary-0.2.0.tar.gz and > > play with it. > > How is this different from RubyUnit? > > Is it that the implementation of lapidary is different from > RubyUnit, or are > there some actual functionality differences? It's largely implementation, although the differences in implementation cause differences in some of the functionality. The best way to answer how it differs in implementation is to answer your next question/statement.... > BTW, I thought that junit was based upon sUnit. True, but it's kind of like going to Babelfish and translating something from French -> Spanish -> English; a lot of important things get lost along the way. Smalltalk & Ruby are much more similiar than either Java & Smalltalk or Java & Ruby (IMHO), so there are important concepts in sunit that just don't exist in junit but can exist in a Ruby unit testing framework. Particularly notable are Java's static typing and lack of blocks, although I'm sure others can list many more. So, my goal was to get a straight Smalltalk -> Ruby translation while being careful not to write Smalltalk idioms into Ruby. As I've said in several places, my intention isn't to start a 'unit testing war.' That said, my personal opinion is that Lapidary has turned out cleaner, easier to use, more easily extended and more robust. Of course, I'm the author, so I'm likely to be a little biased :-) This is why I'm really curious to get the community's feedback; I'm thick-skinned, so tell me what you really think :-) One area where I think Lapidary falls short is in its supporting utilities/infrastructure... there just isn't much. Things like a test decorator, an automatic batch runner (something that wraps up all the tests in a directory into a test suite) and a test stub generator may be useful, but I haven't created them yet. On these types of things, I'm waiting to hear what people really feel like they will use, as I'm a big fan of YAGNI, and I haven't needed any of those things yet (although the batch test runner is going to be very useful RSN). Hopefully the user community will also contribute the utilities they have created and find useful, and we can add things things as they are needed. It's hard for me to point out a lot of functional differences between Lapidary and RubyUnit, since I haven't used and/or looked at RubyUnit much. After looking at RubyUnit and deciding to write Lapidary, I tried to avoid RubyUnit to make sure my work was not just a copy. A few differences I do know of: * various assert* method signatures * inclusion of a GTK::TestRunner, and ease of adding new TestRunners. Probably others more familiar with RubyUnit can add more. There's more info on all of this at http://lapidary.sourceforge.net/docs/index.html and particularly http://lapidary.sourceforge.net/docs/explanation.html. If you have any further questions/comments (or if this email doesn't answer your original ones), please, let me know. As I've already said, I'd love to get everyone's feedback, either positive, negative or indifferent :-) Nathaniel <:((>< + - - + - - | RoleModel Software, Inc. & | EQUIP VI | The XP Software Studio(TM) |