koido Blog

XPerの日々

AILight Banner
AILight Blog

プロフィール

koido Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

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


コメントを追加

#  PowerShell 用の UnitTest 2009年2月12日 14:38 koido Blog

PowerShell 用の UnitTest

#  PowerShell 用の UnitTest 2009年2月12日 14:40 koido Blog

PowerShell 用の UnitTest
タイトル
名前
URL
コメント