So EntityFramework 6 is a lot better testable then previous versions. And there are some nice examples on the internet for frameworks like Moq, but the case is, I prefer usi
You shouldn't need to mock all of the pieces of the IQueryable. When I use NSubstitute for mocking an EF DbContext I do something like so:
interface IContext
{
IDbSet Foos { get; set; }
}
var context = Substitute.For();
context.Foos.Returns(new MockDbSet());
With a simple implementation of IDbSet around a list or something for my MockDbSet().
In general you should be mocking interfaces, not types as NSubstitute will only override virtual methods.