Skip to main content
Version: v6

Should-HaveType

This page was generated

Contributions are welcome in Pester-repo.

SYNOPSIS

Asserts that the input is of the expected type.

SYNTAX

Should-HaveType [[-Actual] <Object>] [-Expected] <Object> [-Because <String>] [<CommonParameters>]

DESCRIPTION

This assertion uses -is to verify that the actual value is assignable to the expected type. Derived types and implemented interfaces also satisfy the check.

When the expected type is given as a name that does not resolve to a loaded .NET type, the assertion falls back to matching against the actual value's PSTypeNames. This allows asserting against PowerShell custom types, such as objects tagged with a PSTypeName or extended with Add-Member -TypeName.

EXAMPLES

EXAMPLE 1

"hello" | Should-HaveType ([String])
1 | Should-HaveType ([Int32])

These assertions will pass, because the actual value is of the expected type.

EXAMPLE 2

$actual = [PSCustomObject]@{ PSTypeName = 'MyApp.Person'; Name = 'Jane' }
$actual | Should-HaveType 'MyApp.Person'

This assertion will pass, because 'MyApp.Person' is not a loaded .NET type, so the actual value's PSTypeNames are checked instead.

PARAMETERS

-Actual

The actual value.

Type: Object
Parameter Sets: (All)
Aliases:

Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Expected

The expected type. Provide a [Type], a type name that resolves to a loaded .NET type, or a custom type name to match against the actual value's PSTypeNames.

Type: Object
Parameter Sets: (All)
Aliases:

Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Because

The reason why the input should be the expected type.

Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

OUTPUTS

NOTES

Use the -ErrorAction parameter to control soft-assertion behavior for this assertion. -ErrorAction Continue records the failure and lets the rest of the test run (a soft assertion), while -ErrorAction Stop fails the test immediately, for example to guard a precondition before continuing.

When -ErrorAction is not specified, the behavior comes from Should.ErrorAction in the configuration, which defaults to Stop. See https://pester.dev/docs/assertions/soft-assertions for more about soft assertions.

https://pester.dev/docs/commands/Should-HaveType

https://pester.dev/docs/assertions

VERSION

This page was generated using comment-based help in Pester 6.1.0.