OnResultExecuted メソッドの単体テストを試みた人はいますか?
通知メッセージをレンダリングしてからクリアする単純なコントローラーがあります。
public class NotificationController : BaseController
{
public NotificationController(INotificationMessagesContext notificationMessagesContext)
{
Contract.Requires<AppEx.NullArgumentException>(
notificationMessagesContext != null, "Notification messages context must be set");
notificationContext = notificationMessagesContext;
}
private readonly INotificationMessagesContext notificationContext;
[ChildActionOnly]
public PartialViewResult Index()
{
return notificationContext == null ? null : PartialView(notificationContext.Messages);
}
protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
if (notificationContext != null && notificationContext.Messages.Any())
notificationContext.ClearAll();
base.OnResultExecuted(filterContext);
}
}
OnResultExecuted は MVC によって呼び出されるため、Index() メソッドの単体テストは役に立ちません。簡単にテストできるカスタム属性を作成できますが、このためにカスタム属性を実装するのはやり過ぎのようです。
ありがとうございました