-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Description
Since the Assertion in the PoshSpec is placed inside a scriptblock, how does one reference variables in it e.g below works fine when the assertion is hardcoded -:
Describe test {
Service Bits Status {Should be 'Running'}
}
But when a variable is placed in the assertion, it can't see them e.g.
Describe test {
$DesiredStatus = 'Running'
Service Bits Status {Should be $DesiredStatus}
}
Above gives me the error -:
Describing test
[-] Service property 'Status' for 'Bits' Should be $DesiredStatus 123ms
Expected: {}
But was: {Running}
1: Get-Service -Name 'Bits' | Select-Object -ExpandProperty 'Status' | Should be $Desir
edStatus
at <ScriptBlock>, <No file>: line 1
at <ScriptBlock>, C:\Users\Deepak_Dhami\Documents\GitHub\poshspec\Private\Invoke-Poshsp
ecExpression.ps1: line 12
The idea is to use a CSV file as a template for all the service and their compliant status.
How do I do something like this with PoshSpec ?
Describe 'IT Compliance for Services' {
$ObjectFromCSV = @([PSCustomObject]@{
Name='Bits';
Status='Stopped'
})
$ObjectFromCSV.Foreach({
Service $PSItem.Name Status {Should be $PSItem.Status}
})
}
Metadata
Metadata
Assignees
Labels
No labels