Re[3]: Как тестировать многопоточные штуки?
От: · Великобритания  
Дата: 10.02.25 11:13
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>·>Вот сделай решение, покажи, будем посмотреть как его тестировать. Интерфейсы не тестируются, тестируется реализация.

S>Ну если TDD — сначала пишем тест, потом реализацию нам GPT сам пишет.
Ну так тогда у GPT и спрашивай. Сюда зачем пришёл?

S>Но тут вопрос — как проверить что реализация действительно рабочая?

Многопоточка в общем случае не тестируется никак. Поэтому сводят к каким-то более ограниченным примитивам. Скажем, у тебя там Task, вот от него и пляшем. Реализация будет куда-то лазить на новой сессией, вот это место и мокаем тестом в виде тамошнего Task, который завершаем в разные моменты и тестируем что получается.

Так что ещё раз. Начни с реализации, а там поглядим.

S>Функционал очень простой — если сессия устарела — вызываем метод ResetSession и потом получаем новую сессию RetrieveSession.

Какой-то корявый интерфейс. А если результат RetrieveSession тоже устареет? Начни с правильного дизайна.

S>Но нюанс — +- в одно время ResetSession могут вызвать 200 методов и так же затем вызывать RetrieveSession — а создать сессию нужно только 1 раз.

Ты пытаешься выжать гарантию корректности из blackbox тестирования? Ну успехов.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.