Junior — Middle
Máte skúsenosti s tvorbou a vykonávaním integračných testov pre softvérové systémy?
sobes.tech AI
Odpoveď od AI
Áno, mám skúsenosti s tvorbou a vykonávaním integračných testov v C#. Zvyčajne používam frameworky ako NUnit alebo xUnit, spolu s knižnicami na mockovanie (napríklad Moq) a nástrojmi na nastavenie testovacieho prostredia (napríklad Docker alebo zabudované testovacie servery).
Integračné testy overujú interakciu viacerých komponentov systému, napríklad fungovanie kontroléra s databázou a službami. Tu je jednoduchý príklad integračného testu s použitím xUnit a Entity Framework Core InMemory:
public class UserServiceIntegrationTests
{
private readonly UserService _userService;
private readonly DbContextOptions<AppDbContext> _options;
public UserServiceIntegrationTests()
{
_options = new DbContextOptionsBuilder<AppDbContext>()
.UseInMemoryDatabase(databaseName: "TestDb")
.Options;
var context = new AppDbContext(_options);
_userService = new UserService(context);
}
[Fact]
public void AddUser_ShouldAddUserToDatabase()
{
var user = new User { Id = 1, Name = "Test User" };
_userService.AddUser(user);
using var context = new AppDbContext(_options);
var addedUser = context.Users.Find(1);
Assert.NotNull(addedUser);
Assert.Equal("Test User", addedUser.Name);
}
}
Tento test overuje, či služba správne komunikuje s databázou, čo presahuje jednotkové testy a približuje sa k reálnemu fungovaniu aplikácie.