Un appareil peut-il être modifié dynamiquement entre les méthodes de test dans CakePHP ?

StackOverflow https://stackoverflow.com/questions/37785

  •  09-06-2019
  •  | 
  •  

Question

Est-il possible de changer de luminaire entre les méthodes de test ?Si oui, comment puis-je procéder ?

Ma syntaxe pour ce problème :

Dans le framework cakephp, je construis des tests pour un comportement configuré en ajoutant des champs à la table.Ceci est destiné à fonctionner de la même manière que l'ajout des champs "créés" et "modifiés" sera automatiquement populater ces champs sur Save.

Pour tester cela, je pourrait créez des dizaines de combinaisons appareils/modèles pour tester les différentes configurations, mais il serait cent fois mieux, plus rapide et plus facile de simplement faire changer de « forme » l'appareil entre les méthodes de test.

Si vous n'êtes pas familier avec le Cadre CakePHP, vous pouvez peut-être encore m'aider au fur et à mesure de son utilisation Test simple

Modifier:question reformulée pour être plus générale

Était-ce utile?

La solution

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

Il n'y a pas de moyen intégré dans les rails au moins pour que cela se produise, et j'imagine pas dans cakePHP ou ailleurs non plus parce que l'idée même d'un luminaire est qu'il est fixé

Il existe 2 solutions de contournement « décentes » que je connais

  • Écrire un changefixture méthode, et juste avant de faire vos assertions/etc, exécutez-la avec les paramètres de ce qu'il faut changer.Il devrait mettre à jour la base de données ou tout ce qui doit être fait.

  • N'utilisez pas du tout de luminaires et utilisez une sorte d'usine d'objets ou de générateur d'objets pour créer vos objets à chaque fois.

Autres conseils

Ce n'est pas une réponse à ma question, mais une solution à mon exemple de problème.

Au lieu d'utiliser plusieurs appareils ou de modifier les appareils, je modifie les tableaux Model::_schema en supprimant les champs sans lesquels je voulais tester.Cela a pour effet que le modèle agit comme si les champs n'étaient pas là, mais je ne sais pas s'il s'agit d'un test à 100 %.Je ne pense pas que ce soit valable pour tous les cas, mais cela fonctionne pour mon exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top