Невозможно пройти тест Пестера из-за ошибки локальной переменной

Мне трудно создать приставку для конкретной функции Powershell с помощью invoke-command и иметь переменную $using в блоке скрипта. Это всегда будет возвращать ошибку всякий раз, когда я запускаю свой тест. Пример функции и тест ниже:

Функция:

Function Execute-Function {
.
.
.
$Name = "Computer_Name"

$ScriptBlock = {
    Import-Module "Activedirectory"
    Get-Computer -Name $Using:Name
}

Invoke-Command -Session $Session -ScriptBlock $ScriptBlock
}

Тестовое задание:

Describe 'Execute-Function' {
.
.
.
.
mock Import-Module {} -verifiable

mock Get-Computer {} -verifiable

mock Invoke-Command {
 param($Scriptblock)
 . $Scriptblock
} -verifiable


$result = Execute-Function

it 'should call all verifiable mocks'{
 Assert-verifiablemocks
}
}

Ошибка моего теста вернула бы Использование переменной не может быть получено. Используемая переменная может использоваться только с Invoke-Command.... Я не могу понять эту ошибку, даже если я заставил Get-Computer ничего не возвращать? или мне нужно изменить способ подделки Get-Computer для прохождения теста?

Заранее спасибо

1 ответ

Решение

Я не уверен, что вы можете подражать $using: сфера с Пестером. Вы можете, однако, использовать предварительно$using:сфера действия:

Invoke-Command -ScriptBlock {
    Param(
        [Parameter(Position = 0)]
        [String] $Name
    )

    <# ... #>

} -ArgumentList $Name
Другие вопросы по тегам