我有一个PowerShell函数,该函数从值的范围返回带有多个小数的值。我该如何为这种功能编写Pester单元测试。这种功能用于检查某些应用程序的版本,例如Outlook。

function randomVersion{
    $randomVersion= Get-Random -InputObject '14.1.3.5397', '14.2.3.5399', '15.4.2.1327', '15.5.2.1328', '16.3.7.9437', '16.7.7.9438'
    return $randomVersion
}

最佳答案

您可以根据自己想要测试的方式随意选择-Pester是Powershell代码,因此您可以对字符串模式进行正则表达式匹配:

randomVersion | should -Match -RegularExpression '^(14|15|16)\.[0-9]+\.[0-9]+\.[0-9]+$'

或者您可以围绕它编写更多代码以测试更多内容,例如
function randomVersion
{
    Get-Random -InputObject '1', 'test', '14.1.3.5397', '14.2.3.5399', '15.4.2.1327', '15.5.2.1328', '16.3.7.9437', '16.7.7.9438'
}

Import-Module -Name Pester

Describe "Tests for randomVersion" {

    It "works" {

        $result = randomVersion

        $version = $result -as [version]
        $version | Should -not -BeNullOrEmpty

        if ($version)
        {
            $version.Major | Should -BeIn 14, 15, 16
        }
    }
}

10-08 11:22