0

こんにちは、現在のユーザー情報を表示するスクリプトを作成しました。出力をモックする必要がある Pester テスト ケースを書きたいと思います。またreturn、関数にテストがない場合は、どうすればそのテストを作成できますか?

function Get-CurrentUserInfo
{

    $domain = [Environment]::UserDomainName
    $user = [Environment]::UserName
    if (!([string]::IsNullOrEmpty($domain))) { $domain = $domain + '\' }

    $currentUser = $domain + $user

    #return $currentUser I have commented out so that it will not return any output
}

返品がある場合の私のテストケースは次のとおりです

$here = Split-Path -Parent $MyInvocation.MyCommand.Path
. "$here\Get-CurrentUserInfo.ps1"
Describe "CurrentUser" {
    It "CurrentUser Info" {
        Get-CurrentUserInfo | Should be 'MY-PC\username'
    }
}

私のPCでは問題なく動作しますが、他のPCで同じことを実行すると失敗するので、どうすれば一意にできますか

4

1 に答える 1

1

環境変数をモックできます:

$here = Split-Path -Parent $MyInvocation.MyCommand.Path
. "$here\Get-CurrentUserInfo.ps1"
Describe "CurrentUser" {
    $originaldomain = [Environment]::UserDomainName
    $originaluser = [Environment]::UserName

    [Environment]::UserDomainName = "testdomain"
    [Environment]::UserName = "testuser"


    It "CurrentUser Info" {
        Get-CurrentUserInfo | Should be 'testdomain\testuser'
    }

    [Environment]::UserDomainName = $originaldomain 
    [Environment]::UserName = $originaluser
}
于 2016-08-18T10:00:22.343 に答える