Saya memiliki metode seperti ini di lapisan repositori saya:
public IEnumerable<User> GetActiveUsers()
{
return dbContext.Users
.Where(u => u.IsActive)
.OrderBy(u => u.Name)
.ToList();
}
Haruskah saya menguji unit metode ini dengan mengejek DbContext
atau haruskah saya mengujinya dengan database yang sebenarnya?
Saya tahu ini berhenti menjadi pengujian "unit" ketika saya menggunakan database aktual, tetapi saya tidak melihat ada gunanya mengejek DbContext
untuk menguji metode repositori saya yang logikanya tipis dan biasanya hanya memanggil metode EF secara langsung.
Dan jika saya harus menggunakan database sebenarnya, apakah ada strategi standar untuk mengisi data pengujian di database sehingga pengujian berjalan secara independen dan tidak mengubah status apa pun di database?