Dire que j'ai une action MVC comme:unitaire et SRP (portée/organisation méthode d'essai)
public ActionResult CustomerRecord(customerId)
{
if (_currentUser.CanViewCustomer(customerId))
return View();
else
{
// user has tried to access an unauthorised record,
// should not be here!
_logger.Log(new SecurityException());
return View("UnauthorizedAccess");
}
}
Pour tester le cas d'une tentative d'accès non autorisé, le nombre de méthodes en cas test soit?
-à-dire que j'écris un seul test:
CustomerRecord_WithUnauthorizedUser_LogsExceptionAndReturnsUnauthorizedView
ou dois-je écrire deux tests:
CustomerRecord_WithUnauthorizedUser_LogsException
CustomerRecord_WithUnauthorizedUser_ReturnsUnauthorizedView
Je suppose que le problème est que techniquement le contrôleur viole SRP, mais je ne voir cela comme étant un problème en soi (veuillez me corriger si vous n'êtes pas d'accord). Je ne suis juste pas sûr de savoir comment cela mappe pour tester les méthodes. Un test par responsabilité de la méthode, ou un test par voie unique à travers la méthode?
"Votre contrôleur ne viole pas nécessairement SRP en faisant deux choses - il n'a toujours qu'une seule responsabilité (contrôle)" Je crains que ce soit une définition très vague de la responsabilité. Comment définiriez-vous la responsabilité du contrôle? Si vous posez cette question à 5 programmeurs, je crains que vous n'obteniez 5 réponses différentes. Identique aux classes nommées Manager. –