Сообщение Как тестировать многопоточные штуки? от 10.02.2025 7:00
Изменено 10.02.2025 8:54 Shmj
Как тестировать многопоточные штуки?
К примеру, такой кейс — восстановление сессии.
Нужно чтобы:
1. Если сессия устарела (а этого ISessionProvider не знает — узнаем когда сделаем запрос) — то вызвать resetSession.
2. Может быть два одновременных запроса и каждый вызовет resetSession.
3. resetSession может быть вызван в момент, когда первый запрос уже начал восстановление сессии.
4. Нельзя восстанавливать сессию повторно, если уже раз восстановили.
Допустим вы сделали решение. Как вы его будете тестировать?
interface ISessionProvider {
Task<SessionResult> RetrieveSession();
Task ResetSession();
}
Нужно чтобы:
1. Если сессия устарела (а этого ISessionProvider не знает — узнаем когда сделаем запрос) — то вызвать resetSession.
2. Может быть два одновременных запроса и каждый вызовет resetSession.
3. resetSession может быть вызван в момент, когда первый запрос уже начал восстановление сессии.
4. Нельзя восстанавливать сессию повторно, если уже раз восстановили.
Допустим вы сделали решение. Как вы его будете тестировать?
Как тестировать многопоточные штуки?
К примеру, такой кейс — восстановление сессии.
Нужно чтобы:
1. Если сессия устарела (а этого ISessionProvider не знает — узнаем когда сделаем запрос) — то вызвать resetSession.
2. Может быть два одновременных запроса и каждый вызовет resetSession.
3. resetSession может быть вызван в момент, когда первый запрос уже начал восстановление сессии (а так же когда начал, почти начал, закончил, почти закончил).
4. Нельзя восстанавливать сессию повторно, если уже раз восстановили.
Допустим вы сделали решение. Как вы его будете тестировать?
interface ISessionProvider {
Task<SessionResult> RetrieveSession();
Task ResetSession();
}
Нужно чтобы:
1. Если сессия устарела (а этого ISessionProvider не знает — узнаем когда сделаем запрос) — то вызвать resetSession.
2. Может быть два одновременных запроса и каждый вызовет resetSession.
3. resetSession может быть вызван в момент, когда первый запрос уже начал восстановление сессии (а так же когда начал, почти начал, закончил, почти закончил).
4. Нельзя восстанавливать сессию повторно, если уже раз восстановили.
Допустим вы сделали решение. Как вы его будете тестировать?
17.02.25 05:14: Перенесено из 'Тестирование приложений'