PowerShell UnitTest
◎PowerShell Mini UnitTest
2009/02/25 エラー時、Win32としてもエラーを返すように変更
##############################################################################
## Assert function. Verifies that $condition
## is False, Throw error message.
function global:Assert (
[bool] $condition = $(Please specify a condition),
[string] $message = "Test failed."
)
{
if( $condition -eq $True )
{
write-host -NoNewLine "."
}
else
{
write-host "`nFAIL. $message"
Throw $message
}
}
## AssertEquals function.
## is False, Throw error message.
function global:AssertEquals (
[object]$expected,
[object]$actual,
[string] $message = "Test failed."
)
{
if($expected -eq $actual)
{
write-host -NoNewLine "."
}
else
{
write-host "`nFAIL. AssertEquals. Expected: $expected. Actual: $actual. $message."
Throw $message
}
}
## AssertNotEquals function.
## is False, Throw error message.
function global:AssertNotEquals (
[object]$expected,
[object]$actual,
[string] $message = "Test failed."
)
{
if($expected -ne $actual)
{
write-host -NoNewLine "."
}
else
{
write-host "`nFAIL. AssertNotEquals. Expected: $expected. Actual: $actual. $message."
Throw $message
}
}
◎Sample TestCase
##############################################################################
## MiniUnitTest
.\MiniUnitTest.ps1
##############################################################################
## Target
.\Calc.ps1
function StringTest()
{
$a = "A"
$b = "B"
$ans = CalcAdd $a $b
AssertEquals "AB" $ans 'AssertEquals AB $ans'
AssertNotEquals "ABC" $b 'AssertNotEquals ABC $ans'
Assert ( $ans -eq "AB" ) 'Assert $ans -eg AB'
Assert ( $ans -ne "ABC" ) 'Assert $ans -ne ABC'
}
function IntTest()
{
$a = 1
$b = 2
$ans = CalcAdd $a $b
AssertEquals 3 $ans 'AssertEquals AB $ans'
AssertNotEquals 4 $ans 'AssertNotEquals ABC $ans'
Assert ( $ans -eq 3 ) 'Assert $ans -eg AB'
Assert ( $ans -ne 4 ) 'Assert $ans -ne ABC'
}
##############################################################################
## Main
function Main
{
StringTest
IntTest
write-host "`nAll Test OK."
}
##############################################################################
## Start
Main
Trap
{
write-host "`nTest Error."
$LastExitCode = 1
exit 1
}
exit 0
◎Sample Target
##############################################################################
# Target Sample Calc
function global:CalcAdd (
[object] $data1,
[object] $data2
)
{
Return $data1 + $data2
}
投稿日時 : 2009年2月12日 14:29
Tweet

コメントを追加
# PowerShell 用の UnitTest 2009年2月12日 14:38 koido Blog
PowerShell 用の UnitTest# PowerShell 用の UnitTest 2009年2月12日 14:40 koido Blog
PowerShell 用の UnitTest