Может приставать к издевательству [Type] :: new ()

У меня есть сценарий со следующим кодом:

 $var1 = [TESTType]::new($Var)

Я хотел бы запустить тест на приставание, который Mock [TESTType] :: new ($ Var). Это возможно ?


person user7786267    schedule 09.09.2020    source источник
comment
Mock не сможет, но в PowerShell ›6 вы можете добавить class TESTType определение в тестовое устройство, и оно должно иметь приоритет над любыми существующими настраиваемыми классами.   -  person Mathias R. Jessen    schedule 09.09.2020


Ответы (1)


Один из вариантов - использовать функцию-оболочку. Например, вы можете сделать это:

function Get-TESTType {
    param(
    [Parameter()]$ContructorVar
    )
    return [TESTType]::new($ConstructorVar)
}

Тогда вы можете издеваться над этой функцией

It "Mocks the TESTType Class" {
    Mock Get-TESTType {
        @{
            field1 = 'something'
            field2 = 'something'
        }
    }
    # Put your test here
}
person Efie    schedule 21.10.2020
comment
Просто случайно наткнулся на это в поисках чего-то другого. Вместо этого, возможно, стоит изучить: pester-docs.netlify.app/docs/commands / New-MockObject - person Efie; 21.10.2020