0

Je travaille sur un generic repository et je voudrais le tester en utilisant un NUnit.Mocks. Selon Mike Hadlow dans son article, vous pouvez le faire en utilisant Rhino se moque comme ceci:Comment se moquer d'un référentiel générique en utilisant NUnit.Mocks?

User[] users = new User[] { }; 
... 
Expect.Call(userRepository.GetAll()).Return(users); 

Je pensais que je pourrais peut-être écrire la même chose dans NUnit.Mocks comme ceci:

dataProviderMock = new DynamicMock(typeof(IDataProvider<User>)); 
var user = new User {Username = "username", Password = "password"}; 
var users =new[]{ user }; 
dataProviderMock.ExpectAndReturn("GetAll",users); 

mais je Je reçois une InvalidCastException comme je m'y attendais car il n'y a aucun moyen de convertir un tableau d'utilisateurs en IQueryable. Donc, voici la question comment puis-je me moquer d'un IQueryable en utilisant NUnit.Mocks?

Répondre

0

C'était plus facile que je ne le pensais :) Il y a cette méthode d'extension AsQueryable() qui permet de convertir un tableau en un IQueryable. Peu importe si vous utilisez Rhino Mocks ou NUnit.Mocks. Voici ce que j'ai fait:

dataProviderMock = new DynamicMock(typeof(IDataProvider<User>)); 
var user = new User {Username = "username", Password = "password"}; 
var users =new[]{ user }; 
dataProviderMock.ExpectAndReturn("GetAll",users.AsQueryable()); 
Questions connexes