|Personally, I mock the EF classes within Unit Tests for other classes.
The data layer code itself needs to be tested thoroughly. Alongside writing the above Mocks, if I find myself using EF features not exercised elsewhere, I add data layer tests - these are integration level tests, necessarily. Naturally, they are designed to ensure that data access code doesn't fall over when accessing a real DB.
I run Unit Tests as part of my compile-test-refactor cycle, and integration tests before commit.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."