Junior — Middle
Имали ли сте опит в създаването и изпълнението на интеграционни тестове за софтуерни системи?
sobes.tech AI
Отговор от AI
Да, имам опит в създаването и изпълнението на интеграционни тестове в C#. Обикновено използвам рамки като NUnit или xUnit, заедно с библиотеки за мокиране (например Moq) и инструменти за настройка на тестова среда (като Docker или вградени тестови сървъри).
Интеграционните тестове проверяват взаимодействието между няколко компонента на системата, например работата на контролера с базата данни и услугите. Ето един прост пример за интеграционен тест с използване на xUnit и 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);
}
}
Този тест проверява дали услугата работи правилно с базата данни, което надхвърля единичните тестове и се доближава до реалната работа на приложението.