diff --git a/%23 Manual de Uso%3A Script de Testes Automatizados %28cria-usuario-unico.Tests.ps1%29.-.md b/%23 Manual de Uso%3A Script de Testes Automatizados %28cria-usuario-unico.Tests.ps1%29.-.md new file mode 100644 index 0000000..7616c49 --- /dev/null +++ b/%23 Manual de Uso%3A Script de Testes Automatizados %28cria-usuario-unico.Tests.ps1%29.-.md @@ -0,0 +1,46 @@ +## 1. Visão Geral + +Este script **não cria usuários**. Sua única finalidade é servir como uma suíte de testes automatizados para o script principal `cria-usuario-unico.ps1`. Ele garante que a lógica de negócio, as validações e o tratamento de erros do script de provisionamento funcionem exatamente como esperado, prevenindo regressões e falhas em produção após qualquer alteração. + +A suíte de testes utiliza o framework **Pester**, o padrão de-facto para testes em PowerShell, e se baseia em um conceito fundamental chamado **Mocking (Simulação)**. + +### O Que é Mocking? + +Em vez de se conectar a um Active Directory real, o script de testes "simula" o comportamento dos cmdlets do AD (`New-ADUser`, `Get-ADUser`, etc.). Isso nos oferece três vantagens críticas: + +1. **Segurança:** Os testes podem ser executados em qualquer máquina, a qualquer momento, **sem nenhum risco** de criar, modificar ou apagar dados em um ambiente de produção ou desenvolvimento. +2. **Velocidade:** Os testes são executados em segundos, pois não há latência de rede ou processamento de um Domain Controller real. +3. **Confiabilidade e Isolamento:** Podemos forçar cenários de erro específicos (ex: simular que um usuário já existe) de forma determinística, garantindo que estamos testando a *lógica do nosso script*, e não a infraestrutura do AD. + +## 2. Pré-requisitos + +* **PowerShell 5.1 ou superior.** +* **Módulo Pester:** Deve estar instalado na máquina de execução. Se não estiver, instale-o com o seguinte comando em um PowerShell como Administrador: + ```powershell + Install-Module -Name Pester -Force + ``` +* **Não é necessário** ter os módulos `ActiveDirectory` ou as Ferramentas do Exchange instaladas, pois todos os cmdlets externos são simulados (mocked). + +## 3. Como Usar + +A execução dos testes é um processo simples e direto. + +1. **Abra o PowerShell** no diretório onde os dois scripts (`cria-usuario-unico.ps1` e `cria-usuario-unico.Tests.ps1`) estão localizados. +2. **Execute o comando `Invoke-Pester`:** + ```powershell + Invoke-Pester -Path '.\cria-usuario-unico.Tests.ps1' + ``` + +### 3.1. Interpretando os Resultados + +#### Sucesso + +Se todas as regras de negócio do script principal estiverem funcionando corretamente, a saída será verde, indicando que todos os testes passaram. + +```powershell +Starting discovery in 1 files. +Discovery found 8 tests in 88ms. +Running tests in 'C:\scripts\cria-usuario-unico.Tests.ps1'. +[+] C:\scripts\cria-usuario-unico.Tests.ps1 1.21s +Tests completed in 1.21s +Tests Passed: 8, Failed: 0, Skipped: 0, Pending: 0, Inconclusive: 0 \ No newline at end of file