2016-08-15 3 views
0

Я пишу тест для модуля Powershell, который вызывает функцию dll C#. пример: [Пространство имен] :: SomeMethod ($ param1, $ param2) Любые идеи о том, как я могу издеваться над этим методом в моем тесте Pester?mock a cll dll function in pester?

ответ

1

Ссылаясь на документацию Pester, насмешка работает только с командлетами, командами или функциями powershell.

В в description section он говорит:

Mock поведение любой команды Powershell.

Но вы могли бы дразнить его с оболочкой, как это:

Function Invoke-FooBar() { 
    [CmdletBinding()] 
    Param(
     [Parameter(Mnadatory=$True)] 
     [ValidateNotNullOrEmpty()] 
     [String]$param1, 

     [Parameter(Mnadatory=$True)] 
     [ValidateNotNullOrEmpty()] 
     [String]$param2 
    ) 
    [Namespace]::SomeMethod($param1, $param2) 
} 

И затем использовать Pester насмешливый с чем-то вроде этого:

Describe "Unit1" { 
    Context "Basic logic tests" { 
     Mock Invoke-Foobar {return $True} 
     It "Test1: Invoke-FooBar" { 
      Invoke-FooBar | Should Be $True 
     } 
    } 
}