J'apprends lentement en utilisant le test d'unité Pester pour Powershell depuis un moment. Je suis un peu bloqué sur l'utilisation de vérifier si ma fonction peut fonctionner "si aucune entrée obligatoire dans une fonction n'est fournie". ce qui me donne un feu rouge ici et voulait obtenir un résultat de test vert et passer au codage.Fonction de test d'unité de testeur avec Mandatory = True
J'ai donc une fonction comme suit.
function Code()
{
param(
[parameter(Mandatory=$true)]
[string]$SourceLocation)
return "Hello from $SourceLocation"
}
mon script de test est exécuté avec les contrôles suivants ...
$moduleName = 'Code';
Describe $moduleName {
Context "$Function - Returns a result " {
It "does something useful with just $Function function name" {
$true | Should Be $true
}
}
Context "$Function - Returns with no input " {
It "with no input returns Mandatory value expected" {
Code | Should Throw
}
}
Context "$Function - Returns some output" {
It "with a name returns the standard phrase with that name" {
Code "Venus" | Should Be "Hello from Venus"
}
It "with a name returns something that ends with name" {
Code "Mars" | Should Match ".*Mars"
}
}
} #End Describe
ma sortie de AppVeyor montre ce résultat que le [+] sont des couleurs vertes et [-] est une couleur rouge c'est ce que j'évite du mieux que je peux.
Describing Code
Context Code - Returns a result
[+] does something useful with just Code function name 16ms
Context Code - Returns with no input
[-] with no input returns Mandatory value expected 49ms
Cannot process command because of one or more missing mandatory parameters: SourceLocation.
at <ScriptBlock>, C:\projects\code\Code.Tests.ps1: line 117
117: Code | Should Throw
Context Code - Returns some output
[+] with a name returns the standard phrase with that name 23ms
[+] with a name returns something that ends with name 11ms
Toute aide est appréciée comme je voudrais une condition verte là-bas que je ne suis pas sûr de savoir comment surmonter certains types de réponses de message de Powershell et traduire en tests unitaires ...
['Should' les tests pour Throw et Not Throw nécessitent un scriptblock en entrée] (https://github.com/pester/Pester/wiki/Should#throw), essayez donc {{Code} | Should Throw' – TessellatingHeckler
Oh, qu'est-ce que tu sais ... ça marche! Merci pour ce @TessellatingHeckler –