Nunit + moq тестирование asp.net core подходы, как правильно
Всем привет. Прошу меня простить, не могу понять. Нашёл на оф сайте руководство по .net и это не помогает совсем. Прошу помогите понять. Все говорят, что тесты это просто, но необходимо их понять. Помогите понять на примере. Какие nuget package я должен установить кроме NUnit, Moq? Как протестировать данный Repository:
public class AlbumRepository : IRepository<Album, int>
{
private readonly MusicCatalogContext _context;
public AlbumRepository(MusicCatalogContext context)
{
_context = context;
}
public async Task<Album> Get(int id)
{
var album = await _context.Albums
.Include(x => x.Songs)
.AsNoTracking()
.FirstOrDefaultAsync(x => x.Id == id);
return album;
}
public async Task<IEnumerable<Album>> GetAll()
{
var albums = await _context.Albums
.Include(x => x.Songs)
.AsNoTracking()
.ToListAsync();
return albums;
}
public async Task Insert(Album item)
{
_context.Add(item);
await _context.SaveChangesAsync();
}
public async Task Remove(Album album)
{
_context.Albums.Remove(album);
await _context.SaveChangesAsync();
}
public async Task Update(Album item)
{
_context.Albums.Update(item);
await _context.SaveChangesAsync();
}
public async Task Save()
{
await _context.SaveChangesAsync();
}
}