JustMock

Telerik JustMock is an easy to use mocking tool from Telerik designed to help you create better unit tests, faster than ever. Telerik JustMock makes it easier for you to create mock objects and set expectations independently of external dependencies like databases, web service calls, or proprietary code.

The Telerik JustMock API is completely AAA (Arrange/Act/Assert) oriented thus helping you keep your unit tests well structured, clean and readable. No matter whether you try to mock an interface, a sealed class or a static class, the pattern you use is the same.

Tip

JustMock Lite is also available from www.nuget.org. You can use the nuget package manager console from within Visual Studio to install JustMock Lite. The command for installing JustMock Lite can be found on this page: http://nuget.org/List/Packages/JustMock.

What Is Mocking And Why Do I Need It?

Mocking is a concept in unit testing where real objects are substituted with fake objects that imitate the behavior of the real ones. Mocking is done so that a test can focus on the code being tested and not on the behavior or state of external dependencies. For example, if you have a data repository class that runs business logic and then saves information to a database, you want your unit test to focus on the business logic and not on the database. Mocking the “save” calls to your database ensures your tests run quickly and do not depend on the availability or state of your database.

When you’re ready to make sure the “save” calls are working, then you’re moving on to integration testing . Unit tests should not cross system boundaries, but integration tests are allowed to cross boundaries and make sure everything works together (your code, your database, your web services, etc.).

What Can Be Mocked?

Mock objects can be created and maintained manually, but this is time consuming and ultimately unproductive approach. A tool like Telerik JustMock allows you to focus on writing tests and forget about the mocking details. Mock objects are created automatically in memory when the tests run based on your simple configuration in the unit test. There are no “physical” mock objects that have to be maintained as your project changes.

Telerik JustMock allows you to mock everything from interfaces, virtual and abstract methods and properties to sealed classes, non-virtual methods and properties, static classes, methods and properties, even those from mscorlib like DateTime, File, FileInfo , etc.

All these can be mocked without a single change of your production code.

Final and Static Mocking

Unlike other mocking frameworks, Telerik JustMock lets you mock:

  • sealed classes - call methods of sealed classes even with internal constructors
  • static classes, methods, properties - create mocks of static classes, set expectations for static method and property calls, verify static method calls
  • final methods or properties - assert final methods, overloads, out and ref arguments

Features At A Glance

Tip

After the Telerik JustMock installation you can find a Getting Started Guide and example projects set in the Start Menu under Telerik | JustMock. Have a look at the example projects which provide a hands-on approach of all the features described here.

For full release notes history check this link.

Arrange/Act/Assert vs Record/Replay

The Arrange/Act/Assert pattern is a more logical and clean approach to unit testing than the legacy Record/Replay. With AAA, you group your testing actions by function, making it clear what part of your test is involved in setup versus verification. The pattern can be applied to all unit testing, but it is especially useful when mocking is involved.

Record/Replay is an older pattern and it is similar to using GOTO statements in your unit tests. This makes the pattern more difficult to follow and clearly less ideal from a programming perspective. Therefore, Telerik JustMock is focused on supporting the AAA pattern.

Read more about AAA in the Arrange Act Assert topic.

See Also