Skip to content

Mocking controllers and views

Alexanderius edited this page Jul 3, 2025 · 2 revisions

Mocking controllers and views

Mocking of views and controllers is available by default because all controller base properties are virtual. You can use mocking frameworks such as Moq to do mocking.

Mocking example

Testing that the default controller returns StaticTpl with the "Default" template name to load.

Source controller

[Get("/")]
public class DefaultController : Controller
{
    public override ControllerResponse Invoke()
    {
        return new StaticTpl("Default");
    }
}

Test

[TestFixture]
public class DefaultPageControllerTests
{
    [Test]
    public void Invoke_Default_MainContentSet()
    {
        // Arrange
        var c = new Mock<DefaultController> { CallBase = true };

        // Act
        var result = c.Object.Invoke();

        // Assert
        Assert.AreEqual("Default", ((StaticTpl)result).TemplateFileName);
    }
}

<< Previous page Next page >>

Clone this wiki locally