gpt4 book ai didi

powershell - 删除 Pester 模拟函数

转载 作者:行者123 更新时间:2023-12-05 05:07:30 25 4
gpt4 key购买 nike

如何unmock 以前模拟的函数?有时我发现自己处于一种情况,我想测试我之前mocked 的函数。

一个简化的例子:

Describe 'Pester mocking' {
$testFile = Join-Path $env:TEMP 'test.txt'

It 'should be green' {
Mock Out-File

'Text' | Out-File -FilePath $testFile

Assert-MockCalled Out-File -Times 1 -Exactly
}
It 'should be green' {
# Unmock Out-File

'Text' | Out-File -FilePath $testFile

$testFile | Should -Exist
}
}

最佳答案

弄明白了,Pester 似乎为每个模拟函数创建了一个别名。解决方案是从范围中删除 alias。这样就会调用真正的 CmdLet

根据您的 PowerShell 版本,有两种方法可以做到这一点:

Remove-Item Alias:\Out-File
Remove-Alias Out-File

解决方案:

Describe 'Pester mocking' {
$testFile = Join-Path $env:TEMP 'test.txt'

It 'should be green' {
Mock Out-File

'Text' | Out-File -FilePath $testFile

Assert-MockCalled Out-File -Times 1 -Exactly
}
It 'should be green' {
Remove-Item Alias:\Out-File

'Text' | Out-File -FilePath $testFile

$testFile | Should -Exist
}
}

关于powershell - 删除 Pester 模拟函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59066763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com