2009-12-16 7 views
0

J'essaie de comparer CString d'ATL/MFC à une implémentation CString personnalisée et je veux m'assurer que toutes les fonctionnalités de l'implémentation personnalisée correspondent à celles de l'implémentation ATL/MFC.Existe-t-il des tests de régression codés en C/C++ pour tester toutes les fonctionnalités de CString (ATL/MFC)?

La raison pour laquelle nous avons une implémentation CString personnalisée est que nous pouvons l'utiliser sur les plateformes * nix et Windows. L'interface est la même, mais la mise en œuvre est différente, donc quand nous portons notre code Windows pour utiliser le SDK que nous écrivons, nous ne devons pas changer TOUS les noms ... nous n'aurons qu'à résoudre les différences entre les deux implémentations.

Toute aide à ce sujet serait grandement appréciée. Merci!

Répondre

1

Personnellement, je ne peux pas penser à tout. Cependant, si je le faisais, je coderais tous les cas d'utilisation que j'en ai et je ferais en sorte de posséder un test pour le couvrir.

Sur les fenêtres, déléguez-vous également à l'implémentation fournie ou aux vôtres? Si vous avez délégué, vous pourriez trouver vos tests plus utiles car ils pourraient mettre en évidence les différences.

Bonne chance,

+0

Sur cette note, est-ce que quelqu'un a une liste de cas d'utilisation courants pour CString? Je ne suis pas vraiment trop familier avec l'utilisation moi-même. Des façons bizarres que vous pourriez utiliser généralement CString pour accomplir une tâche commune? –

+0

Cependant, si quelqu'un a ou sait où obtenir un test de régression complet pour la classe CString (c'est-à-dire de Microsoft) ce serait génial! –

+0

Eh bien, malgré les utilisations courantes, je dirais que vos cas d'utilisation sont les plus importants –

0

CString fournit toute une série de modèles et les surcharges opérateur qui il inherets du ATLCStringT. Pour pouvoir utiliser des algorithmes ou des structures ATL, vous devez tout implémenter (CMAP). Si vous l'utilisez cependant comme un wrapper de base *, cela devrait aller.

Notez que CString est plus optimal lorsqu'il est compilé sous Visual Studio que std :: string par défaut.