Junior — Middle
Къде в тестовете се реализира логиката на поведението на обектите?
sobes.tech AI
Отговор от AI
Логиката на поведение на обектите в тестовете обикновено се реализира с помощта на мокове или стабове. Това са специални обекти, които имитират поведението на реалните зависимости, позволявайки контрол върху техните отговори и проверка на взаимодействията.
В C# често се използват библиотеки като Moq. В тестовете се създават мок-обекти, настройват се тяхното поведение (например, какво трябва да върне даден метод) и се проверява дали тестираният обект взаимодейства правилно с тях.
Пример с Moq:
var mockRepository = new Mock<IRepository>();
mockRepository.Setup(r => r.GetData()).Returns("Тестови данни");
var service = new MyService(mockRepository.Object);
var result = service.ProcessData();
mockRepository.Verify(r => r.GetData(), Times.Once);
Assert.AreEqual("Обработени: Тестови данни", result);
По този начин, логиката на поведението на обектите в тестовете се реализира чрез настройка и проверка на поведението на мок-обектите, а не чрез реални реализации.