J'ai un contrôleur de base dont j'ai défini certaines propriétés de contrôleur communes dans la méthode OnActionExecutionAsync
, puis définir certaines propriétés viewmodel commun dans la méthode OnActionExecuted
cela fonctionne très bien, mais j'ai maintenant besoin écrire des tests unitaires pour cela. pas TDD pour moi ..Base de test unité Contrôleur OnActionExecutionAsync et méthodes OnActionExecuted
le code que j'ai est:
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
//set some controller properties
await base.OnActionExecutionAsync(context, next);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
//set some other viewmodel properties
base.OnActionExecuted(filterContext);
}
le problème que j'ai avec les OnActionExecutionAsync
essais, autre que étant une douleur droit de se moquer du contexte, est que lorsque la méthode complète , il appelle automatiquement la méthode OnActionExecuted
et tombe comme ActionExecutedContext
est null. Je suppose que je dois appeler await base.OnActionExecutionAsync(context, next);
, plutôt que simplement await next();
? pour continuer avec le pipeline, bien qu'ayant vérifié le code Controller
dans github, il semble que l'implémentation de base n'appelle que OnActionExecuted
lorsque le résultat du ActionExecutingContext est null aspnet core controller on GitHub aucune idée comment je peux obtenir mon test pour fonctionner sans sauter à OnActionExecuted
?