Sto lavorando con PowerShell che non sembra avere una specifica linguistica aggiornata . Questo mi lascia chiedendo alcuni casi limite . Ho utilizzato testando le mie ipotesi su come si comporta il runtime di PowerShell. Ecco un esempio di calcestruzzo :
It 'the System.Exception that is thrown is actually a ParameterBindingException.' {
$o = New-Object psobject -Property @{a=1}
$o.a | Should be 1
try
{
$o | f
}
catch [System.Exception]
{
$threw = $true
$_.Exception.Message | Should match 'The input object cannot be bound because it did not contain the information required to bind all mandatory parameters: b'
$_.CategoryInfo.Reason | Should be 'ParameterBindingException'
$_.Exception -is [System.Management.Automation.ParameterBindingException] | Should be $true
}
$threw | Should be $true
}
Questo test asserisce una parte del comportamento di cattura delle eccezioni della versione 2.0 di PowerShell. (Evidentemente, PS V2 genera ParameterBindingException
che può essere catturato come Exeception
ma non ParameterBindingException
.)
Questo tipo di test non sembra adattarsi a nessuna definizione di "Test unitario" o "Test di integrazione" che ho trovato. Verifica l'ambiente in cui è in esecuzione il codice anziché il codice stesso.
Ho trascorso un po 'di tempo a cercare un nome per questo tipo di test, ma sembra che non stia usando le parole chiave. Esiste un termine generalmente accettato la cui definizione corrisponde a questo tipo di test?