Aprende a testar os teus exercícios de ReScript no Exercism
Usa a CLI do Exercism para descarregar o exercício em que queres trabalhar.
exercism download --track=rescript --exercise=hello-world
Depois, entra no diretório do exercício.
cd /path/to/exercism/rescript/hello-world
Antes de executar os testes, instala as dependências do exercício.
npm install
Compila e executa a suite de testes fornecida com exercism test ou npm run test.
O test runner indica, para cada teste executado, se passou ou falhou.
1/3: no name given
PASS - no name given
2/3: a name given
FAIL - a name given
---
operator: equal
left: One for you, one for me.
right: One for Alice, one for me.
...
3/3: another name given
FAIL - another name given
---
operator: equal
left: One for you, one for me.
right: One for Bob, one for me.
...
# Ran 3 tests (3 assertions)
# 1 passed
# 2 failed
O left é o valor que o teu código devolveu. O right é o valor que o teste esperava.
two-fer/
├── src/
│ ├── TwoFer.res // your solution goes here
│ └── TwoFer.resi // the optional interface file containing signatures
├── tests/
│ └── TwoFer_test.res // your test suite
├── package.json // used to install project dependencies
└── ...
Aqui, o TwoFer.resi é um ficheiro de interface opcional.
Quando está presente, define as assinaturas das funções que a tua solução tem de satisfazer e pode servir de pista para o que tens de implementar.
Por exemplo, se a interface declarar:
let hello: unit => string
A tua implementação deve definir:
let hello = () => "Hello, World!"
Se o teu código não compilar, o compilador do ReScript produz mensagens de erro detalhadas, com a localização exata e os tipos esperados.
We've found a bug for you!
1 │ let x: string = 42
This has type: int
But it's expected to have type: string
You can convert int to string with Int.toString.
Lê a mensagem de erro com atenção, porque normalmente aponta diretamente para o problema.