Since there is an announcer per test class, you need to write something like
MyClass>>#register
MyTestClass announcer
on: TestCaseStarted send: #foo to: self.
It means than here you force a link from MyClass to MyTestClass.
And if you want to be aware of all test case started, you need something like
TestCase withAllSubclasses do: [:e | e announcer
on:
TestCaseStarted send: #foo to: self ].
Why not using only one Announcer (and TestAnnouncer already exists and is
already integrated) for all test class ?
Ben
On Apr 5, 2012, at 3:50 PM, Alexandre Bergel wrote:
> I proposed this test announcement facilities some times ago to get notified
> when tests are being executed and when they are done.
>
> You said: "It means that you have to know which class to register to instead
> of which announcer."
> Which unit to register you mean? Yes, the one you are interested in. I do not
> see why it break the pattern. Consider TestCaseTest>>testAnnouncement. What
> is wrong with it?
>
> Cheers,
> Alexandre
>
>
> On 5 Apr 2012, at 06:14, Benjamin wrote:
>
>> Hello guys,
>>
>> I was implementing in Nautilus a listener to TestCaseStarted, and then I
>> figured out that each TestCase subclasses have its own Announcer.
>>
>> It means that you have to know which class to register to instead of which
>> announcer. In a way, it breaks the Observer pattern.
>>
>> Is there any good reason I am missing ?
>>
>> I think it has been done in a way you can spy a particular test class, but
>> since you have this info in the announcement itself, you can always filter
>> with this info.
>> Cause for me, replacing all those announcer by TestAnnouncer seems to be a
>> better solution.
>>
>>
>>
>> Thanks in advance,
>>
>> Ben
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>