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:
- 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.
- Velocidade: Os testes são executados em segundos, pois não há latência de rede ou processamento de um Domain Controller real.
- 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:
Install-Module -Name Pester -Force - Não é necessário ter os módulos
ActiveDirectoryou 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.
- Abra o PowerShell no diretório onde os dois scripts (
cria-usuario-unico.ps1ecria-usuario-unico.Tests.ps1) estão localizados. - Execute o comando
Invoke-Pester: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.
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