2008-09-01 9 views
1

Est-il possible d'avoir un changement d'appareil entre les méthodes d'essai? Si oui, comment puis-je faire cela?Peut-on changer dynamiquement un appareil entre les méthodes de test dans CakePHP?

Ma syntaxe pour ce problème:

Dans le cadre de CakePHP je suis essais construction pour un comportement qui est configuré en ajoutant des champs à la table. Ceci est destiné à fonctionner de la même manière que l'ajout des champs "créé" et "modifié" remplira automatiquement ces champs lors de la sauvegarde.

Pour tester cela, je pourrait créer des dizaines d'appareils/combos modèle pour tester les différentes configurations, mais il serait cent fois mieux, plus rapide et plus facile d'avoir juste le changement de fixation « de forme » entre les méthodes d'essai.

Si vous n'êtes pas familier avec le CakePHP framework, vous pouvez peut-être me aider encore car il utilise SimpleTest

Edit: reformulé question à plus générale

Répondre

0

Je ne connais pas spécifiquement avec CakePHP, mais ce genre de chose semble se produire n'importe où avec des appareils.

Il n'y a pas construit de manière dans des rails au moins pour que cela se produise, et je pense pas CakePHP ou nulle part ailleurs, soit parce que l'idée d'un appareil, est qu'il est fixe

Il y a 2 solutions de contournement « décent » Je suis au courant de

  • Ecrivez une méthode changefixture, et juste avant de faire votre affirme/etc, l'exécuter avec les paramètres de ce qu'il faut changer. Il devrait aller mettre à jour la base de données ou tout ce qui doit être fait.

  • Ne pas utiliser des appareils du tout, et utiliser une sorte de générateur usine d'objet ou d'un objet pour créer vos objets à chaque fois

0

Ce n'est pas une réponse à ma quetion, mais une solution à mon exemple de problème. Au lieu d'utiliser plusieurs projecteurs ou de changer les projecteurs, j'édite les tableaux du schéma Model :: _ en supprimant les champs que je voulais tester. Cela a pour effet que le modèle agit comme si les champs n'étaient pas là, mais je ne suis pas sûr que ce soit un test à 100%. Je ne pense pas que ce soit pour tous les cas, mais cela fonctionne pour mon exemple.

Questions connexes