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

kw assert

Зарезервированное слово

Список слов: §1.4

Синтаксис

ebnf
Assert      = "assert" Type ":" Bounds ;

Грамматика: Прил. A

Определяется в

  • 18.2 Утверждения и фикстуры — assert expr выполняется во всех профилях, включая prod (профили отключают только контракты, §6.7, и вывод dbg, §2.2); при падении печатает з
  • 0.2 Нотация — Грамматика записана в EBNF (приложение A)
  • 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
  • 4.6 Интерфейсы — Интерфейсы структурные
  • 18.3 Моки — mock S { … } подменяет сервис, интерфейс или актор в пределах теста.
  • 18.4 Симуляция — В sim детерминированы планировщик, сеть, часы, случайность и отказы диска; результат зависит только от seed.

Примеры

oxl
pub(api) interface Storage {
  fn get(k: str) -> bytes?  io
  var fn put(k: str, v: bytes)  io
  fn has(k: str) -> bool  io => get(k) != none     // метод по умолчанию
}

interface ReadWrite { embed Reader; embed Writer }
interface Container<T> { type Item = T; fn items() -> iter<T> }

@explicit interface Persistent { fn key() -> str }

assert FileStorage: Storage                      // статическая проверка

— 4.6 Интерфейсы

oxl
mock Payments {
  charge(_)            => fail Timeout once, then Receipt{ id: 1 }
  refund(id) if id > 0 => Ok always
}
assert Payments.calls(.charge).count == 2

— 18.3 Моки

Связанные диагностики

fixture-yield, explicit-interface, interface-not-satisfied, mock-decl

См. также