You need to get all dependencies on EF implementation out of the GetValidRecords method, particularly _context otherwise EF specific implementation is going to constantly bleed into your unit tests. In order to test GetValidRecords as a unit you need to make it be able to stand on it's own. If you want to test it as it is I suggest using an integration test, which is actually retrieving records from the db and asserting they came back OK - this would not require the use of any mocking framework, and is a perfectly OK way to test this functionality.
On the topic of making GetValidRecords stand alone, I see that DbSet implements IEnumerable, so maybe what you want is something like this:
public static List<T> GetValidRecords<T>(this IEnumerable<T> source) where T: class, IGetListOfTables
{
if (null == source)
{
throw new ArgumentNullException("source");
}
return source.Where(x => x.Valid == 1).ToList();
}