Le projet que je viens de rejoindre utilise assez largement le modèle de commande pour gérer les appels dans les couches logiques métier du projet.Stratégie de sortie de dépendance statique
Les couches logiques métier sont construites en tant que gestionnaires statiques appelant des fournisseurs. Les commandes appellent ensuite ces gestionnaires statiques. L'équipe veut améliorer la couverture de test, et je voudrais que nous nous dirigeons plus vers le vrai TDD mais l'utilisation de gestionnaires statiques signifie qu'il y a une dépendance codée en dur dans les commandes et il n'y a aucun moyen d'injecter les gestionnaires dépendances et il est donc très difficile de tester les commandes isolément.
Est-ce que quelqu'un a de bonnes suggestions pour une stratégie pour nous de passer à un modèle de commande plus testable en gardant à l'esprit qu'il y a beaucoup de commandes déjà utilisées.
La méthode de traitement ci-dessous serait appelée quand execute est appelée sur la commande. Ce serait la méthode à tester. Ceci est un exemple typique de l'utilisation des gestionnaires statiques dans les classes de commande.
protected override bool Process()
{
this.user = SecurityHandler.ActivateUser(this.activationGuid);
bool success = this.user != null;
if (!success)
{
this.AddStatusMessage(StatusMessageType.Error, "/Commands/Security/ActivateUserCommand/IncorrectLink", true);
}
return success;
}
l'exemple de code a aidé ... voir la mise à jour la réponse. – Gishu