Testes na trilha ReScript

Aprenda a testar seus exercícios de ReScript no Exercism


Baixe um exercício

Use a CLI do Exercism para baixar o exercício em que você quer trabalhar.

exercism download --track=rescript --exercise=hello-world

Depois, entre no diretório do exercício.

cd /path/to/exercism/rescript/hello-world

Instale as dependências

Antes de rodar os testes, instale as dependências do exercício.

npm install

Rode os testes

Compile e rode a suíte de testes fornecida usando exercism test ou npm run test.

Entendendo os resultados dos testes

O executor de testes mostra cada teste executado com um status de aprovação ou falha.

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

left é o que seu código retornou. right é o que o teste esperava.

Entendendo a estrutura do exercício

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
└── ...

O TwoFer.resi aqui é um arquivo de interface opcional. Quando ele está presente, define as assinaturas de função que sua solução precisa satisfazer e pode servir como dica do que implementar.

Por exemplo, se a interface declara:

let hello: unit => string

Sua implementação deve definir:

let hello = () => "Hello, World!"

Erros de compilação

Se seu código não compila, 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.

Leia a mensagem de erro com atenção, porque ela geralmente aponta direto para o problema.