私は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ウィンドウ内の各ラインの実行ではなく、私の作品実行時にすべてを1つのコマンドとしてコピー・ペーストする)
$ _通常、現在作業しているアイテムのみです。あなたは模倣しようとしていることのいくつかの例を挙げることができますか? –
@BenRichards '$?'は最後のコマンドがエラーなしで実行されたかどうかによって 'true/false'を返します。 – ConnorLSW
$? readonly変数は正しくありますか?どのようにそれを嘲笑することができますか? – Ramana