gpt4 book ai didi

Powershell 单元测试用例

转载 作者:行者123 更新时间:2023-12-02 23:51:04 29 4
gpt4 key购买 nike

我在powershell中有一个命令,我两次调用相同的命令,我期待第一次它会返回一个值,第二次它会抛出一个错误,知道如何测试这段代码吗?
如何为我的模拟命令提供多种实现?

try{
Write-output "hello world"
}Catch{
throw "failed to print"
}

try {
write-output "hello world"
}Catch{
throw "failed to print hello world"
}

最佳答案

您可以向 Mock 添加一些逻辑,以便它检查它之前是否已执行过,然后结果会有所不同。

下面的 Pester 检查脚本是否抛出了我们预期的确切错误消息,并检查 Write-Output被调用了两次:

Function YourCode {

try{
Write-output "hello world"
}
catch{
throw "failed to print"
}

try {
write-output "hello world"
}
catch{
throw "failed to print hello world"
}
}


Describe 'YourCode Tests' {

$Script:MockExecuted = $false

Mock Write-Output {

if ($Script:MockExecuted) {
Throw
}
else {
$Script:MockExecuted = $true
}
}

It 'Should throw "failed to print hello world"' {
{ YourCode } | Should -Throw 'failed to print hello world'
}

It 'Should have called write-output 2 times' {
Assert-MockCalled Write-Output -Times 2 -Exactly
}
}

请注意,我将您的代码包装在一个函数中,以便可以在脚本 block 中调用它来检查 Throw , 但这可以通过点源脚本轻松完成

关于Powershell 单元测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59404965/

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