21 lines
1.2 KiB
Markdown
21 lines
1.2 KiB
Markdown
# UnitTest
|
|
|
|
Testes xUnit da biblioteca [GeradoresService](../GeradoresService/README.md) e da API
|
|
[GeradoresWS](../GeradoresWS/README.md).
|
|
|
|
```bash
|
|
dotnet test UnitTest
|
|
```
|
|
|
|
| Ficheiro | O que cobre |
|
|
|---|---|
|
|
| `GeneratorRoundTripTests.cs` | Para cada gerador e cada valor de cada opção, gera valores e confirma que o validador os aceita. Também: campos da pessoa fictícia válidos, `seed` reprodutível, ids únicos, opções e quantidades inválidas |
|
|
| `KnownValuesTests.cs` | Valores reais/conhecidos válidos e inválidos (NIF, NIPC, NISS, CC, IBAN, …) e o dígito de controlo esperado |
|
|
| `DetectTests.cs` | Validador livre: ordem dos resultados, quase-acertos (formato certo, controlo errado) e valores sem correspondência |
|
|
| `ApiTests.cs` | Testes de integração com `WebApplicationFactory<Program>`: listagem, geração em lote, 400/404, validação, detecção, OpenAPI e `/health` |
|
|
|
|
Os testes de ida e volta são gerados a partir do `GeneratorRegistry`, por isso um gerador novo fica coberto sem
|
|
escrever testes. Os valores conhecidos devem ser acrescentados à mão sempre que se corrige um bug num algoritmo.
|
|
|
|
O Jenkins corre `dotnet test UnitTest/UnitTest.csproj -c Release` antes de construir as imagens.
|