brew install --cask powershell
Test if powershell is installed:
pwsh
pwsh
Install-Module -Name Pester -Force
Invoke-Pester ./A-Test.ps1
Or just run the file:
./A-Test.ps1
Not case sensitive, checks if two objects are the same
$true | Should -Be $true
$true | Should -Not -Be $false
Case sensitive, checks if to objects are the same
$actual | Should -BeExactly "Actual value" # Test will pass
Asserts that value is false
$false | Should -BeFalse
2 | Should -BeGreaterOrEqual 0
(Get-Date).AddMinutes(5) | Should -BeGreaterThan (Get-Date)
27 | Should -BeIn (1..100)
1 | Should -BeLessOrEqual 10
$Error.Count | Should -BeLessThan 1
Check: https://pester.dev/docs/assertions/
$pathToFile | Should -Exist
$pathToFile | Should -FileContentMatchExactly $content
function BeAwesome($ActualValue, [switch] $Negate) {
[bool] $succeeded = $ActualValue -eq 'Awesome'
if ($Negate) { $succeeded = -not $succeeded }
if (-not $succeeded) {
if ($Negate) {
$failureMessage = "{$ActualValue} is Awesome"
}
else {
$failureMessage = "{$ActualValue} is not Awesome"
}
}
return New-Object psobject -Property @{
Succeeded = $succeeded
FailureMessage = $failureMessage
}
}
Add-ShouldOperator -Name BeAwesome `
-Test $function:BeAwesome `
-Alias 'BA'
PS C:\> "bad" | Should -BeAwesome