Spec-Zone.ru › Pony

TestHelper

[Source]

Класс для каждого отдельного тестирования, предоставляющий функции управления, ведения журнала и проверки.

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

Функции проверки проверяют соответствующее условие и помечают тест как неудачный, если это необходимо. Успех или неудача условия сообщается обратно как Bool, что позволяет проверить другую ветвь кода, если это условие не выполнилось.

Все функции assert принимают необязательный аргумент message. Это просто строка, которая выводится как часть сообщения об ошибке, когда условие не выполняется. Она предназначена для облегчения определения причины ошибки.

class val TestHelper

Общедоступные поля

let env: Env val

[Source]

Среда выполнения процесса.

Это полезно для получения корневого разрешения для доступа к файловой системе (см. files) или сети (см. net) в ваших тестах.

Общедоступные функции

log

[Source]

Вывести заданное сообщение.

Параметр verbose позволяет выводить сообщения только при использовании командной строки --verbose. Например, по умолчанию ошибки assert записываются в журнал, а успешные проверки — нет. С --verbose в журнал записываются как успешные, так и неудачные проверки.

Журналы выводятся по одному на тест, чтобы избежать переплетения строк журнала от одновременных тестов.

fun box log(
  msg: String val,
  verbose: Bool val = false)
: None val

Параметры

  • msg: String val
  • verbose: Bool val = false

Возвращаемое значение

  • None val

fail

[Source]

Помечает тест как неудачный.

fun box fail(
  msg: String val = "Test failed")
: None val

Параметры

  • msg: String val = "Test failed"

Возвращаемое значение

  • None val

assert_true

[Source]

Проверить, что заданное выражение истинно.

fun box assert_true(
  actual: Bool val,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • actual: Bool val
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_false

[Source]

Проверить, что заданное выражение ложно.

fun box assert_false(
  actual: Bool val,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • actual: Bool val
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_error

[Source]

Проверить, что заданная функция тестирования вызывает ошибку при выполнении.

fun box assert_error(
  test: ITest box,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • test: ITest box
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_no_error

[Source]

Проверить, что заданная функция тестирования не вызывает ошибку при выполнении.

fun box assert_no_error(
  test: ITest box,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • test: ITest box
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_is[A: A]

[Source]

Проверить, что 2 заданных выражения ссылаются на один и тот же экземпляр.

fun box assert_is[A: A](
  expect: A,
  actual: A,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • expect: A
  • actual: A
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_eq[A: (Equatable[A] #read & Stringable #read)]

[Source]

Проверить, что 2 заданных выражения равны.

fun box assert_eq[A: (Equatable[A] #read & Stringable #read)](
  expect: A,
  actual: A,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • expect: A
  • actual: A
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_isnt[A: A]

[Source]

Проверить, что 2 заданных выражения ссылаются на разные экземпляры.

fun box assert_isnt[A: A](
  not_expect: A,
  actual: A,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • not_expect: A
  • actual: A
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_ne[A: (Equatable[A] #read & Stringable #read)]

[Source]

Проверить, что 2 заданных выражения не равны.

fun box assert_ne[A: (Equatable[A] #read & Stringable #read)](
  not_expect: A,
  actual: A,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • not_expect: A
  • actual: A
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_array_eq[A: (Equatable[A] #read & Stringable #read)]

[Source]

Проверить, что содержимое 2 заданных ReadSeq равны.

Параметр типа этой функции — параметр типа элементов в обоих ReadSeq. Например, при сравнении двух Array[U8], вы должны вызвать этот метод следующим образом:

fun apply(h: TestHelper) =>
  let a: Array[U8] = [1; 2; 3]
  let b: Array[U8] = [1; 2; 3]
  h.assert_array_eq[U8](a, b)
fun box assert_array_eq[A: (Equatable[A] #read & Stringable #read)](
  expect: ReadSeq[A] box,
  actual: ReadSeq[A] box,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • expect: ReadSeq[A] box
  • actual: ReadSeq[A] box
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

assert_array_eq_unordered[A: (Equatable[A] #read & Stringable #read)]

[Source]

Проверить, что содержимое 2 заданных ReadSeq равны, игнорируя порядок.

Параметр типа этой функции — параметр типа элементов в обоих ReadSeq. Например, при сравнении двух Array[U8], вы должны вызвать этот метод следующим образом:

fun apply(h: TestHelper) =>
  let a: Array[U8] = [1; 2; 3]
  let b: Array[U8] = [1; 3; 2]
  h.assert_array_eq_unordered[U8](a, b)
fun box assert_array_eq_unordered[A: (Equatable[A] #read & Stringable #read)](
  expect: ReadSeq[A] box,
  actual: ReadSeq[A] box,
  msg: String val = "",
  loc: SourceLoc val = __loc)
: Bool val

Параметры

  • expect: ReadSeq[A] box
  • actual: ReadSeq[A] box
  • msg: String val = ""
  • loc: SourceLoc val = __loc

Возвращаемое значение

  • Bool val

long_test

[Source]

Указывает, что это тест с длительным выполнением, который может продолжаться после завершения функции теста. После вызова этой функции необходимо вызвать complete() для завершения теста, если не произойдет истечение времени. Время ожидания задаётся в наносекундах.

fun box long_test(
  timeout: U64 val)
: None val

Параметры

  • timeout: U64 val

Возвращаемое значение

  • None val

complete

[Source]

ДОЛЖЕН вызываться для каждого теста с длительным выполнением для указания того, что тест завершён, если не произошло истечение времени.

Параметр success указывает, был ли тест успешным. Однако, если какие-либо проверки assert завершатся неудачей, тест будет считаться неудачным, независимо от значения этого параметра.

После вызова этого метода tear_down() можно вызывать в любое время.

fun box complete(
  success: Bool val)
: None val

Параметры

  • success: Bool val

Возвращаемое значение

  • None val

expect_action

[Source]

Может вызываться в тесте с длительным выполнением для задания ожиданий для одного или нескольких действий, которые при их завершении завершат тест.

Этот шаблон полезен в случаях, когда вам нужно выполнить несколько операций для завершения теста, но вы не хотите собирать их все в один актёр, вызывающий метод complete.

Порядок вызовов expect_action не имеет значения — действия могут быть выполнены в любом порядке для завершения теста.

fun box expect_action(
  name: String val)
: None val

Параметры

  • name: String val

Возвращаемое значение

  • None val

complete_action

[Source]

ДОЛЖЕН вызываться для каждого ожидания действия, которое было установлено в тесте с длительным выполнением для выполнения ожиданий. Любые ожидания, которые всё ещё ожидаются в момент истечения времени ожидания теста с длительным выполнением, будут выведены в журнал по имени, когда тест завершится неудачей.

Выполнение всех незавершенных действий достаточно для завершения теста. Нет необходимости вызывать метод complete, когда действия завершены.

Вызов метода complete немедленно завершит тест, без ожидания завершения любых незавершенных действий.

fun box complete_action(
  name: String val)
: None val

Параметры

  • name: Строка val

Возвращаемое значение

  • None val

fail_action

[Исходный код]

Вызов для провала действия, что также приведет к немедленному провалу всего теста, без ожидания завершения оставшихся действий.

Имя проваленного действия будет включено в вывод об ошибке.

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

fun box fail_action(
  name: String val)
: None val

Параметры

  • name: Строка val

Возвращаемое значение

  • None val

dispose_when_done

[Исходный код]

Передайте актор, подлежащий удалению, когда тест будет завершен. Актор будет удален независимо от того, успешен ли тест или провален.

Если тест уже завершается, актор будет удален немедленно.

fun box dispose_when_done(
  disposable: DisposableActor tag)
: None val

Параметры

  • disposable: DisposableActor tag

Возвращаемое значение

  • None val

© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/ponytest-TestHelper

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API