Что-нибудь, чтобы иметь дело с получением переменных окружения, WMI или с помощью tnet stati c вызовов методов, я хотел бы содержать в небольшой вспомогательной функции, тогда ее очень легко смоделировать. Вот как может выглядеть этот помощник.
Function Get-SMSTsVariable{($VariableName)
return $TSEnv.Value($VariableName)
}
Затем вы можете легко смоделировать это в различных контекстах, чтобы проверить и посмотреть, как работает ваш код, когда установлены различные переменные среды.
Например, если вы хотите, чтобы он возвращал значение BitLockerProvisioning
при запуске Get-SMSTsVariable -VariableName _SMSTSCurrentActionName
и возвращал 'C:' при запуске _OSDDetectedWinDir
, вы устанавливаете макет следующим образом:
mock Get-SMSTsVariable `
-parameterFilter { $VariableName -eq '_SMSTSCurrentActionName'} `
-mockWith {return 'BitLockerProvisioning'}
mock Get-SMSTsVariable `
-parameterFilter { $VariableName -eq '_OSDDetectedWinDir'} `
-mockWith {return 'C:'}
Таким образом, вы можете начать тестирование, настроив несколько ответов для различных способов работы ваших функций. Это действительно бриз.