View Models

If you assert that the action returns a view of some sort there are some other methods that you can call (seen easily using intellisense). These allow you to check the model, e.g.:

// Check the type of the model
_controller.WithCallTo(c => c.Index()).ShouldRenderDefaultView()
    .WithModel<ModelType>();

// Check that a particular object was passed through as the model
_controller.WithCallTo(c => c.Index()).ShouldRenderDefaultView()
    .WithModel(expectedModel);

// Check that the model that was returned passes a predicate
_controller.WithCallTo(c => c.Index()).ShouldRenderDefaultView()
    .WithModel<ModelType>(m => m.Property1 == "hello");

// Make assertions on the model
_controller.WithCallTo(c => c.Index()).ShouldRenderDefaultView()
    .WithModel<ModelType>(m => {/* Make assertions on m */});

Note: if you use any of these model tests then it will check that the model passed through isn't null.