1

我正在为调用 ac# dll 函数的 Powershell 模块编写测试。示例:[Namespace]:: SomeMethod($param1, $param2) 关于如何在 Pester 测试中模拟此方法的任何想法?

4

1 回答 1

2

参考 Pester 文档模拟仅适用于 powershell cmdlet、命令或函数。

描述部分它说:

模拟任何 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
        }
    }
}
于 2016-10-24T10:08:42.380 回答