1

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() メソッドの単体テストは役に立ちません。簡単にテストできるカスタム属性を作成できますが、このためにカスタム属性を実装するのはやり過ぎのようです。

ありがとうございました

4

1 に答える 1