2009-09-04 13 views
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 Mocksまたは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()); 
関連する問題