# 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`: 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.