2017-06-06 5 views
0

J'écris un cas de test pour une méthode générique commune, car je n'ai pas de configuration de base de données, mais la méthode générique de méthode gère l'objet IQueryable. Donc, j'ai essayé le code suivantInitialiser un DbSet sans contexte en C# - Mocking

public static DbSet<Person> GetPersonDbSet() { 
    DbSet<Person> record = null; 
    record.Add(new Person() { 
     PersonId = 1, 
     FirstName = "Ram", 
     LastName = "Kumar" 
    }); 

    record.Add(new Person() { 
     PersonId = 2, 
     FirstName = "Raj", 
     LastName = "Kumar" 
    }); 

    return record; 
} 

Méthode d'origine:

public static class MyLib { 
    public static IQueryable Pagination<T>(IOrderedQueryable<T> query, int offset, int limit) { 

     // Validation Code (...) 

     // Main Logic 
     return query.Skip(offset).Take(limit); 

    } 
} 

Méthode d'essai:

[Fact] 
public void CheckPagination() { 
    var query = GetPersonDbSet().OrderBy(i => i.FirstName); 

    var result = MyLib.Pagination(query, 1, 5); 
    int count = result.Count(); 
    Assert.True(count > 0); 
} 

Je suis une exception dans GetPersonDbSet() tout en ajoutant l'entité, car la DbSet<Person> record variables a été initialisé avec null. Veuillez m'aider comment Initialiser et réaliser ceci sans contexte (parce que dans ce projet je n'utilise aucun contexte de base de données).

Répondre