3
我正在使用Pester測試一個PowerShell腳本點源其他腳本。當我嘗試模擬點源的功能時,Pester拒絕使用模擬版本。當我嘗試通過將函數添加到.psm1文件並使用Import-Module而不是點源來獲取函數時,我遇到了同樣的問題。糾纏不點功能是點源
下面是一個複製我遇到的問題的示例。所有3個文件都在同一個文件夾中。
Foo.ps1
Function Invoke-Foo{
'Cantelope'
}
Bar.ps1
function Invoke-Bar {
. .\foo.ps1
Invoke-foo
}
Bar.tests.ps1
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
. "$here\$sut"
. .\Foo.ps1
Describe "Bar" {
It "Mocks Foo" {
Mock Invoke-Foo {'Banana'}
Invoke-Bar | should be 'Banana'
}
}
嘲笑調用-富後,結果應該是 '香蕉',但結果是:
Describing Bar
[-] Mocks Foo 36ms
Expected string length 6 but was 9. Strings differ at index 0.
Expected: {Banana}
But was: {Cantelope}
-----------^
9: Invoke-Bar | should be 'Banana'
at <ScriptBlock>, C:\Users\geinosky\Desktop\PingTest\Bar.tests.ps1: line 9
如何讓Pester正確使用點源功能?