Re[9]: Новости C#12
От: · Великобритания  
Дата: 17.11.23 19:43
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>·>Ага, простое, но неправильное. Т.к. ты сможешь мокать только классы написанные на c# и только лежащие в твоём проекте в виде исходников.

S>Эти классы могут быть написаны на чем угодно. Подменяются вызовы в моем коде!
Именно, что _только_ в твоём (притом если ты _только_ на шарпе пишешь). Подменять надо не место вызова, а то что вызывается. Т.к место вызова может быть где угодно, и в библиотечном коде в том числе.
Простой пример. В своём коде ты пишешь:
void myMethod(MockableThing thing)
{
  Logger.LogInformation("thing is {thing}", thing);
}

где-то в недрах какой-то библиотеки логгирования позовётся ToString. Как InterceptsLocation поможет тебе замокать этот вызов?
Этой же проблеме будет подвержена и работа с аспектно-ориентированным программированием.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 17.11.2023 19:45 · . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.