2011-09-28 5 views
1

Je fais TDD avec Cocoa et je voulais demander - quelle est la bonne façon de tester une classe singleton? Je suis curieux de connaître la partie d'initialisation et de récupération.Cocoa TDD et singletons

Je pense à faire quelque chose de semblable à ceci:

MySingleton *singleton1 = [MySingleton sharedInstance]; 
MySingleton *singleton2 = [[MySingleton alloc] init]; 

STAssertEqualObjects(singleton1, singleton2, @"Objects were not equal: %@ and %@", singleton1, singleton2); 

autre chose que je devrais tester? Dois-je même essayer de tester le comportement dans des conditions de course possibles (tester la déclaration @synchronize)?

Répondre

1

Si votre singleton n'a pas d'état accessible en écriture, vous n'avez pas à vous en soucier du tout.

Si votre singleton a un état accessible en écriture, il ne devrait probablement pas être un singleton du tout.

+0

OMG, J.B. Rainsberger a répondu à ma question \ o/Je peux mourir heureux maintenant. – Eimantas

+0

Compliment merveilleux ou pêche à la traîne très avancée? :) –

+1

Je suis allé à deux de vos discours en Agile Tour en Lituanie (Vilnius et Kaunas), donc j'espère que ce sera l'ancien.) – Eimantas