0

generic repository에서 작업 중이며 NUnit.Mocks를 사용하여 테스트하고 싶습니다. 그의 기사 당신이 코뿔소를 사용하여 수행 할 수있는 마이크 Hadlow에 따르면 다음과 같이 조롱 : NUnit.Mocks를 사용하여 일반 저장소를 조롱하는 방법은 무엇입니까?

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

그래서 나는 생각 어쩌면 내가 이런 NUnit.Mocks에서 같은 일을 작성할 수 있습니다

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

을하지만 사용자 배열을 IQueryable에 캐스트 할 방법이 없으므로 예상대로 InvalidCastException을 얻습니다. NUnit.Mocks를 사용하여 IQueryable을 어떻게 조롱 할 수 있습니까?

답변

0

생각보다 쉽습니다. 배열을 IQueryable로 변환 할 수있는 AsQueryable() 확장 메서드가 있습니다. Rhino Mock 또는 NUnit.Mocks를 사용하고 있어도 상관 없습니다. 다음은 내가 한 일입니다.

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