xvlady / uMock

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Universal System Testing Mock (USTMock)

Проблема тестирования интеграций сложной системы с внешним миром - хочется интегрировать тестовую зону с тестовой зоной мира. А лучше с несколькими.

Типовое решение - тупой мок. На запрос такой-то ответь так-то.

Но хочется более сложного поведения.

Сценарий 1.

  1. Тест в предусловии говорит USTMock - на обращение такое-то ответь мне так-то. Идеально, если одно из полей - trace_id.
  2. Тест в действие пинает система А.
  3. Система А что-то начинает делать. Возможно это комлекс систем. Не важно, рассматриваем как одну.
  4. Система А в рамках какого-то действия идёт "наружу" к USTMock.
  5. USTMock иденитифицирует запрос - что это то, что мы ждали и отдаёт данные подготовленные тестом.
  6. Система А что-то делает дальше.
  7. Тест проверяет кишки Системы А до отправки запроса наружу (не обязательно).
  8. Тест спрашивает USTMock - забрала ли система данные (не обязательно).
  9. Тест проверяет кишки Системы А и результат.

Сценарий 2 (Репка).

1-4 5.0. STMock иденитифицирует запрос - что это то, что мы ждали 5.1. запрос подвешиваем, тесту говорим что запрос пришёл 5.2. тест пинает систему B, формирует изменения ответа USTMock системе А 5.3. отдаём ответ от USTMock 6. Системы А и B делает что-то дальше 9. Тест проверяет кишки Системы А, B и результат.

Сценарий 3. Обращение с наружи, не важно по какому протоколу

Эмулируем из теста. USTMock не нужен.

Сценарий 4. Асинхрон

  1. Система А отправляет сообщение в очередь и ожидает ответ от внешней системы
  2. Читаем из теста, отвечаем из теста. USTMock не нужен.

Смотри также

About

License:MIT License