New to Telerik JustMockStart a free 30-day trial

CallOriginal

Updated on Jan 27, 2026

Mocks with Behavior.CallOriginal will follow the original implementation of the mocked type for every non explicitly arranged function/member.

Syntax

Mock.Create<T>(Behavior.CallOriginal);

Examples

Basic CallOriginal Example

Assume the following class:

C#
public class Log
{
    public virtual void Info()
    {
        throw new NotImplementedException();
    }
}

To show how CallOriginal mocks behave, we have the next example:

C#
[TestMethod]
[ExpectedException(typeof(NotImplementedException))]
public void ShouldThrowAnExpectedException()
{
    // Arrange
    var log = Mock.Create<Log>(Behavior.CallOriginal);

    // Act
    log.Info();
}

Here, we create a mock of the Log class, with Behavior.CallOriginal and call a not implemented method. This method follows its original logic and throws a NotImplementedException.

Arranging CallOriginal Mock

We are free to further arrange mocks with Behavior.CallOriginal, as shown in the next example:

C#
public class FooBase
{
    public string GetString(string str)
    {
        return str;
    }
}
C#
[TestMethod]
public void ShouldAssertAgainstOriginalAndArrangedExpectations()
{
    // Arrange
    var foo = Mock.Create<FooBase>(Behavior.CallOriginal);

    Mock.Arrange(() => foo.GetString("y")).Returns("z");

    // Act
    var actualX = foo.GetString("x");
    var actualY = foo.GetString("y");

    var expectedX = "x";
    var expectedY = "z";

    // Assert
    Assert.AreEqual(expectedX, actualX);
    Assert.AreEqual(expectedY, actualY);
}

See Also