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

S>Вот я Logger.LogInformation("thing is {thing}", thing); я и замокаю.

В смысле будешь выпиливать все логгинг стейтменты при прогоне тестов? Для упавшего теста ты просто не сможешь разобраться почему он упал, если это произошло на билд-сервере вчера ночью. Особенно актуально для какого-нибудь хитрого многопоточного кода.

S>Суть моков проверить свой код, а не сторонних библиотек. То есть я должен подсунуть свой ответ и проверить различные вариации для проверки своего кода.

Но если ты в своём коде используешь хоть какой-нибудь библиотечный код, то всё.

S>Ты разве моками не занимался?

Занимался конечно. Надо создавать моковый инстанс thing, и тогда он может гулять по всему коду где угодно. А мокать call-sites — бесполезно, работает только на игрушечных примерах.
В java такой проблемы с моками никогда не было. Стандартно там можно создавать моки для любого класса, который не final (или sealed в терминологии c#). Впрочем, есть ещё PowerMock — она манипуляцией байткода позволяет мокать вообще всё, но это считается bad practice.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.