У меня есть простой, что на данный момент ничего не происходит, я только начинаю работать с Pester, но моя цель - высмеять Remove-ADGroupMember и несколько других команд PowerShell AD для тестирования.Pester BoundParams in CallHistory empty
Param(
[string]$computerList = ".\\computers.csv",
[boolean]$isTest = $false
)
function Remove-Groups(){
Remove-ADGroupMember -Identity "dale" -Members "dale","cameron"
}
и мой тестовый скрипт
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$sut = "../" + (Split-Path -Leaf $MyInvocation.MyCommand.Path).Replace(".Tests.", ".")
. "$here\$sut"
Describe "UninstallUnused - Remove-Groups" {
It "does something useful" {
Mock Remove-ADGroupMember
Remove-Groups
Assert-MockCalled Remove-ADGroupMember -Exactly 1
Assert-MockCalled Remove-ADGroupMember 1 -ParameterFilter {$Identity -eq "dale" -and $Members -contains "dale"}
}
}
Первая Assert-MockCalled
линия работает, но независимо от того, что я стараюсь на второй испытания всегда терпит неудачу. Через некоторое время я вырыл в Funciton Утверждай-MockCalled с отладчиком, и это выглядит как значения параметра -Members теряются
На картинке выше я в Утверждай-MockCalled функции Mock.ps1 и, как вы видите, значения, переданные членам, отсутствуют. Если я передаю только одно значение методу Remove-ADGroupMember следующим образом: Remove-ADGroupMember -Identity "dale" -Members "dale"
значение, которое я вижу в BoundParams, равно {}
вместо {, }
, как вы видите на скриншоте.
Является ли это проблемой с тем, как я это делаю или является проблемой, как читатель читает параметры и т. Д. Из Remove-ADGroupMember?
Если вы только сделать второй 'Утверждай-MockCalled' это работает или являются' значения еще членов организации потеряли? – briantist
Да ... Я прокомментировал первый оператор Assert-MockCalled и Members = {,} – Dale