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);
}
}
Бул тест кызматтын маалымат базасы менен туура иштешин текшерет, ал бирдик тесттерден ашып, реалдуу колдонмонун иштешине жакындап калат.