我正在使用Pester为Powershell应用程序编写测试。
我已经能够为大多数函数创建模拟,但一直没有能够模拟返回$的函数吗?变量。我目前正在使用它来评估AWS CLI命令的回报。
这例如用于模拟失败的AWS CLI命令返回。
有什么想法?
我正在使用Pester为Powershell应用程序编写测试。
我已经能够为大多数函数创建模拟,但一直没有能够模拟返回$的函数吗?变量。我目前正在使用它来评估AWS CLI命令的回报。
这例如用于模拟失败的AWS CLI命令返回。
有什么想法?
谢谢,我发现你的答案很有用,可以与我的团队分享,并找到我们自己的解决方案,我们需要的解决方案。这比预期更明显,只是一点结构。
我们创建了一个辅助函数并通过了$?值为。
function Test-LastExitCodeIsFalse ($last_exit) {
if ($last_exit) {
return $false
}
$true
以及使用被
aws s3 <an aws command>
if (Test-LastExitCodeIsFalse($?)) {
throw "AWS Exception"
}
使用纠缠,那么我们就嘲笑试验LastExitCodeIsFalse函数返回假。我们有一个失败aws的单元测试:)
希望这会有所帮助。
你应该能够做到:
Mock AWC-CLI { $ = $true } -Verifiable
如果你希望得到执行相同的功能$?
模拟代码 - 您可以使用这样的事情(在如何实际条件相当有限返回如果多条线路同时等执行,将有可能需要根据执行上下文)
Function Test-LastCommandError {
$LastCommand = (History | Select -Last 1).CommandLine
$LastError = $Error[-1].InvocationInfo.Line
$LastCommand -eq $LastError
}
1/1#Success
Test-LastCommandError #returns false
1/0#Error
Test-LastCommandError #returns true
这对我的作品手动执行的每一行进行修改,而不是在一个特设的ISE窗口(因为它在执行时将所有内容复制粘贴为一个命令)
$ _通常只是您正在使用的当前项目。你能举出一些你试图嘲笑的例子吗? –
@BenRichards'$?'返回'true/false',具体取决于最后一条命令是否运行正常。 – ConnorLSW
$?是只读变量的权利?你怎么嘲笑它? – Ramana