On Thu, Apr 5, 2012 at 3:17 PM, Benjamin <benjamin.vanryseghem.pharo@gmail.com> wrote:
per instance ?
I you wanna know when a test instance you run started, I think there are better solutions than announcement.

Hehe, actually, if you are the one firing the test, then you do need nothing :).� Also the tests instances are discarded to have independent state so what I said is nonsense :).

For me the goal of announcement is to emit, and than everyone can catch this information.

Hmm, that's one specific use for them...� You can build for example a small application using announcements to decouple the UI from the model, and there you probably will not make the announcer accessible for everyone.
On Thu, Apr 5, 2012 at 2:57 PM, Benjamin <benjamin.vanryseghem.pharo@gmail.com> wrote:
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 ?

And then you lack the possibility to subscribe to a specific one...� Maybe you can add a method in TestCase hiding the subscriptions to all the subclasses.

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
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>