Сообщение Re[9]: Новости C#12 от 17.11.2023 19:43
Изменено 17.11.2023 19:45 ·
Re[9]: Новости C#12
Здравствуйте, Serginio1, Вы писали:
S>·>Ага, простое, но неправильное. Т.к. ты сможешь мокать только классы написанные на c# и только лежащие в твоём проекте в виде исходников.
S>Эти классы могут быть написаны на чем угодно. Подменяются вызовы в моем коде!
Именно, что _только_ в твоём (притом если ты _только_ на шарпе пишешь). Подменять надо не место вызова, а то что вызывается. Т.к место вызова может быть где угодно, и в библиотечном коде в том числе.
Простой пример. В своём коде ты пишешь:
где-то в недрах какой-то библиотеки логгирования позовётся ToString. Как InterceptsLocation поможет тебе замокать этот вызов?
S>·>Ага, простое, но неправильное. Т.к. ты сможешь мокать только классы написанные на c# и только лежащие в твоём проекте в виде исходников.
S>Эти классы могут быть написаны на чем угодно. Подменяются вызовы в моем коде!
Именно, что _только_ в твоём (притом если ты _только_ на шарпе пишешь). Подменять надо не место вызова, а то что вызывается. Т.к место вызова может быть где угодно, и в библиотечном коде в том числе.
Простой пример. В своём коде ты пишешь:
void myMethod(MockableThing thing)
{
Logger.LogInformation("thing is {thing}", thing);
}
где-то в недрах какой-то библиотеки логгирования позовётся ToString. Как InterceptsLocation поможет тебе замокать этот вызов?
Re[9]: Новости C#12
Здравствуйте, Serginio1, Вы писали:
S>·>Ага, простое, но неправильное. Т.к. ты сможешь мокать только классы написанные на c# и только лежащие в твоём проекте в виде исходников.
S>Эти классы могут быть написаны на чем угодно. Подменяются вызовы в моем коде!
Именно, что _только_ в твоём (притом если ты _только_ на шарпе пишешь). Подменять надо не место вызова, а то что вызывается. Т.к место вызова может быть где угодно, и в библиотечном коде в том числе.
Простой пример. В своём коде ты пишешь:
где-то в недрах какой-то библиотеки логгирования позовётся ToString. Как InterceptsLocation поможет тебе замокать этот вызов?
Этой же проблеме будет подвержена и работа с аспектно-ориентированным программированием.
S>·>Ага, простое, но неправильное. Т.к. ты сможешь мокать только классы написанные на c# и только лежащие в твоём проекте в виде исходников.
S>Эти классы могут быть написаны на чем угодно. Подменяются вызовы в моем коде!
Именно, что _только_ в твоём (притом если ты _только_ на шарпе пишешь). Подменять надо не место вызова, а то что вызывается. Т.к место вызова может быть где угодно, и в библиотечном коде в том числе.
Простой пример. В своём коде ты пишешь:
void myMethod(MockableThing thing)
{
Logger.LogInformation("thing is {thing}", thing);
}
где-то в недрах какой-то библиотеки логгирования позовётся ToString. Как InterceptsLocation поможет тебе замокать этот вызов?
Этой же проблеме будет подвержена и работа с аспектно-ориентированным программированием.