Junior — Middle
გაქვს გამოცდილება პროგრამული სისტემების ინტეგრაციის ტესტების შექმნასა და ჩატარებაში?
sobes.tech AI
პასუხი AI-სგან
დიახ, მე მაქვს გამოცდილება C#-ში ინტეგრაციის ტესტების შექმნასა და განხორციელებაში. ჩვეულებრივ, ვიყენებ NUnit ან xUnit ჩარჩოებს, ასევე mocking ბიბლიოთეკებს (მაგალითად, 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);
}
}
ეს ტესტი ამოწმებს, რომ სერვისი სწორად ურთიერთქმედებს მონაცემთა ბაზასთან, რაც გადაჭრის ერთეულ ტესტებს და უახლოვდება რეალურ აპლიკაციის მუშაობას.