Hi guys
I have a design question. I'm working on RPackage a new package class. RPackages are stored in RPackageOrganizer singleton. Now to be able to run the tests without touching RPackageOrganizer singleton I provided a Mock (subclass of RPackageOrganizer)
RPackage class>>packageOrganizerClass as classVar and RPackage class>>packageOrganizerClass:
Now I write tests as setUp
RPackage packageOrganizerClass: RMockPackageOrganizer. p1 := self createNewPackageNamed: 'P1'. p2 := self createNewPackageName ... tearDown b2 := nil. a3 := nil. RPackage packageOrganizerClass: RPackageOrganizer.
So far so good. Now however, I had to change ClassDescription>>package ^ RPackage packageOrganizerClass default packageOf: self name. "use RPackage packageClassOrganizer instead of the singleton because tests use the mock"
instead of simply
ClassDescription>>package ^ RPackage default packageOf: self name.
I was thinking that if I really want to be as fast as possible I could separate the package and put the tests in a separate package and use overrides..... so that
ClassDescription>>package ^ RPackage packageOrganizerClass default packageOf: self name. "use RPackage packageClassOrganizer instead of the singleton because tests use the mock"
is only used when the tests are loaded Berk
So do we have another simple solution at hand?
Stef