Thanks for this short how-to Hilaire
2009/2/4 Stéphane Ducasse <[email protected]>: > Hilaire > > have a look at CollectionsTest there are really simple example of > traits. > In 5 minutes you should get that: > > You have a trait TRemoveTest > > Trait named: #TRemoveTest > uses: {} > category: 'CollectionsTests-Abstract' > > easy > > TRemoveTest>>testRemoveElementFromEmpty > "self debug: #testRemoveElementFromEmpty" > > self should: [self empty remove: self nonEmpty anyOne] raise: Error > > Easy > self empty is undefined and it will return an empty collection > self nonEmpty and nonEmpty one > > testRemoveElementThatExists > "self debug: #testRemoveElementThatExists" > > | el res | > el := self nonEmpty anyOne. > self shouldnt: [res := self nonEmpty remove: el ] raise: Error. > self assert: res == el > > > testRemoveElementReallyRemovesElement > "self debug: #testRemoveElementReallyRemovesElement" > > | size | > size := self nonEmpty size. > self nonEmpty remove: self nonEmpty anyOne. > self assert: (size -1) = self nonEmpty size > > OK now you use the trait in a class > For example > > Object subclass: #MySetTest > uses: TRemoveTest > instanceVariableNames: 'full empty > > You define > > setUp > full := Set new add: 5 ; add: 6 ;yourself > empty := Set new. > > nonEmpty > > ^ full > > empty > ^ empty > > > This is it!!!!! > You can reuse your traits in another Test. > > Now if you do not like a trait method you can remove it or redefine it > in your class > > DONE!!! > > Stef > > > > > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- http://blog.ofset.org/hilaire _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
