Pequenos auxiliares de asserção para escrever testes em Bern.
import assert
Cada asserção devolve uma string terminada em PASS ou FAIL, nomeada para você ler uma coluna de resultados de relance. Elas nunca lançam exceção - você coleta e imprime os resultados.
Compara dois valores com ==.
assert_equals("Teste de soma", 2 + 2, 4)
-- Saída: "Teste de soma PASS"
assert_equals("Teste errado", 2 + 2, 5)
-- Saída: "Teste errado FAIL"
Se a e b estão dentro de tolerância um do outro - o auxiliar por trás de assert_approx.
approx_eq(3.14159, 3.14, 0.01) -- Saída: true
Como assert_equals, mas passa quando os dois números estão perto o suficiente - ideal para resultados de ponto flutuante.
assert_approx("Teste de Pi", 3.14159, 3.14, 0.01)
-- Saída: "Teste de Pi PASS"
Um arquivo de testes geralmente reúne uma lista de resultados e os imprime. Aqui assert se une à math para checar alguns cálculos de uma vez:
import assert
import core
import math
results = [
assert_equals("sum", sum([1, 2, 3, 4]), 10),
assert_equals("reverse", reverse([1, 2, 3]), [3, 2, 1]),
assert_approx("sqrt(2)", sqrt(2), 1.41421, 0.001),
assert_approx("sin(0)", sin(0), 0.0, 0.0001)
]
loop r : results do
r
end
-- Saída:
-- "sum PASS"
-- "reverse PASS"
-- "sqrt(2) PASS"
-- "sin(0) PASS"