ユニットテストにMoqを使用することへのいくつかの言及に出くわしました。しかし、moqのwikiの例を見た後、モックリポジトリを作成するだけで何のメリットも実際にはわかりません。私は何かが足りないのですか。以下は、私が作成したモックリポジトリの例です。moqはこれをどのように最適化できますか?
namespace Models
{
public class MockImagesRepository : IImagesRepository
{
private readonly BlogContext _context;
private readonly List<ImageViewModel> _imageViewModels;
public MockImagesRepository()
{
_context = new BlogContext();
_imageViewModels = new List<ImageViewModel>();
for (var i = 0; i < 10; i++)
{
_imageViewModels.Add(new ImageViewModel
{
Id = i,
AlternateText = "AlternateText " + i,
Description = "Description " + i,
Name = "Name " + i,
});
}
for (var i = 10; i < 20; i++)
{
_imageViewModels.Add(new ImageViewModel
{
Id = i,
AlternateText = "AlternateText " + i,
Description = "Description " + i,
Name = "Name " + i,
});
}
for (var i = 20; i < 30; i++)
{
_imageViewModels.Add(new ImageViewModel
{
Id = i,
AlternateText = "AlternateText " + i,
Description = "Description " + i,
Name = "Name " + i,
});
}
}
public int GetCount()
{
return _imageViewModels.Count;
}
public IEnumerable<ImageViewModel> FindRange(string format, int i, int recordsCount)
{
return _imageViewModels.Skip(i).Take(recordsCount);
}
public void Add(Image image)
{
}
public IEnumerable<Image> GetImages()
{
var images = new List<Image>();
foreach (var imageViewModel in _imageViewModels)
{
images.Add(new Image(imageViewModel));
}
return images;
}
#region Implementation of IDisposable
public void Dispose()
{
_context.Dispose();
}
#endregion
}
}