Re[3]: Как тестировать многопоточные штуки?
От: Doom100500 Израиль  
Дата: 10.02.25 07:44
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, Doom100500, Вы писали:


S>>>4. Нельзя восстанавливать сессию повторно, если уже раз восстановили.

D>>В тесте два раза вызываешь ResetSession и проверяешь отсутствие исключений в первый раз, и ожидаемое исключение — во второй.

S>Зачем исключение? Просто нужно ждать пока завершится первый запрос — и не делать запрос повторно. Вроде очевидно же


Пишешь мок на свой интерфейс и проверяешь в реализации мока проверку, что запрос не завершён. Это условия падения теста. А тестируется тут клиентский код, поэтому мокаем интерфейс и пишем туда тестовую логику. Это разве не очевидно? НО тест упал, и что твоя апликация должна сделать? У тебя нет никакого фидбэка что должно произойти, если это условие не выполнится, поэтому исключение. Разве ЭТО не очевидно?

S>Но при этом нужно убедиться что правильно будет не зависимо в какой момент вызовешь ResetSession — до запроса, в момент запроса, сразу после запроса.


S>Тут проблема вот в чем. Нужно как-то протестить что правильно расставлены блокировки, атомарные операции, нет кеширования в памяти (volatile где нужно) и пр. Т.е. даже правильный тест — может не всегда а лишь с определенной вероятностью обнаружить проблему. Но и даже правильный тест написать — так же под вопросом.


Определись кто должен быть ответственным за соблюдением этих условий (провайдер или клиентский код) и что должно произоити, если услоия не выполняются. И это будем тестировать.

ПС.
постарайся не употреблять манупулятивные выражения типа "Вроде очевидно же". Оставь это для конспирологов. А здесь технический вопрос и технические детали, которых ты не предоставил, и подкидываешь по ходу. Имей уважение хотя-бы к тем, у кого спрашиваешь.
Спасибо за внимание
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.