はRavenDBを使用して、次のブログ記事(http://www.codecapers.com/post/Using-RavenDB-with-ASPNET-MVC.aspx)で を述べた:IRepositoryはどのようにユニットテストができますか?私はリポジトリを使用して、以下の方法を書かれている
public User GetUserById(string id)
{
var user = (from usr in _repository.All<User>() where usr.Id == id select usr).FirstOrDefault();
if (user == null)
{
throw new NullReferenceException("No user with the id (" + id + ") could be found.");
}
return user;
}
このメソッドをnunit(とおそらくmoq)で単体テストしますか?
"user"は通常のクラスです。
いいえ:あなたのメソッドが正しいユーザーを返すかどうかもテストしています。 'GetUserById(" 4 ")'が明示的にテストしない限り、IDが "4"のユーザを返すことを保証するものは何もありません。リポジトリからのデータのみを返すと仮定した場合、10の 'Users'リポジトリを仮定すると、11通りの結果が得られます*。だから、もしあなたが完全にテストしているなら、十分にテストする必要があります。 –