Я не думаю, что нужно проверять, что HandleUnknownAction вызывается, когда в контроллере отсутствует действие. Мы доверяем структуре, чтобы справиться с этим. Таким образом, мы можем протестировать реализацию, вызвав HandleUnknownAction напрямую с помощью фреймворка Moq . Также должно быть возможно с Rhino Mocks .
public void TestHandleUnknownAction()
{
Mock<ControllerContext> cc = new Mock<ControllerContext>
(MockBehavior.Strict);
cc.Expect(c => c.HttpContext.Response.Redirect("/"));
TestHelperController controller = new TestHelperController();
controller.ControllerContext = cc.Object;
controller.InvokeUnknownAction("test");
}
Где TestHelperController делает доступным HandleUnknownAction:
public class TestHelperController : RealController
{
public void InvokeUnknownAction(string action)
{
this.HandleUnknownAction(action);
}
}