Junior — Middle
Heeft u ervaring met het maken en uitvoeren van integratietests voor softwaresystemen?
sobes.tech AI
Antwoord van AI
Ja, ik heb ervaring met het maken en uitvoeren van integratietests in C#. Ik gebruik meestal frameworks zoals NUnit of xUnit, samen met mocking-bibliotheken (bijvoorbeeld Moq) en tools om de testomgeving op te zetten (zoals Docker of ingebouwde testservers).
Integratietests controleren de interactie tussen meerdere componenten van het systeem, bijvoorbeeld de werking van de controller met de database en services. Hier is een eenvoudig voorbeeld van een integratietest met xUnit en 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);
}
}
Deze test controleert of de service correct samenwerkt met de database, wat verder gaat dan unit testing en dichter bij de werkelijke werking van de applicatie komt.