OxL Справочник OxL
РусскийEnglish

18.3 Моки

oxl
mock Payments {
  charge(_)            => fail Timeout once, then Receipt{ id: 1 }
  refund(id) if id > 0 => Ok always
}
assert Payments.calls(.charge).count == 2
  • mock S { … } подменяет сервис, интерфейс или актор в пределах теста. Ветка: образец аргументов (§5.5) => последовательность ответов: e once, e times n, then e, e always. По умолчанию последний ответ повторяется.
  • Вызов, не подошедший ни к одной ветке, — падение теста с описанием вызова.
  • S.calls(.метод) -> List<Call>: аргументы, ctx, время.

Определяется реализацией. Границы mock (D-8056; DIV-037; D-7250). Эта реализация: mock и S.calls работают для унарных rpc сервисов (не для интерфейсов и акторов); в integ-кластере мок действует на узле теста; S.calls(.m) — List<Call> (есть .count).

mock-decl

См. также

Исходник: docs/spec/oxl-standard.md