2

バックアップ ファイルと復元を管理するスクリプトのコレクションを実装しています。スクリプトは次の記事に基づいています: http://www.solidq.com/sqj/Documents/2010%20September%20Issue/SQJ_003_pag._30-41.pdf

スクリプトを中心に単体テストを開発したいと考えています。PesterPSUnitなどのフレームワークの使用に興味があります

私の問題は、テストで何を探すべきかを理解していないことです。私は単体テストに慣れていません。私が読んだことのほとんどは、ファイルのモックアップ、関数での変更、およびファイルから期待する値を読み取れることの確認に依存しています。

これから作成する関数は、読み取り専用の方法でバックアップ ファイルのコレクションと対話します。私の最初の傾向は、いくつかのファイルを含む静的ディレクトリを作成し、それをテストと共に保存することです。コードはファイルから読み取るだけなので、テスト ディレクトリは常に同じままです。

これには、これらのバックアップ ファイルをソース管理に保存する必要があり、私は好きではありません。また、これが単体テストの真の精神に従っているとは思いませんが、それを行うためのより良い方法はわかりません。任意の提案をいただければ幸いです。

4

1 に答える 1

1

CodePlex プロジェクトSQL Server Powershell Extensionsで行った作業の一部で PSUnit を使用しました

ソース領域の PSUnit テスト スクリプトを確認してください: http://sqlpsx.codeplex.com/SourceControl/changeset/view/ed45217f200e#Test%20Scripts%2fTest.SQLServer.ps1

Test.SQLServer.ps1 スクリプトには、invoke-sqlbackup 関数をテストするためのテスト関数があります。

##function Test.Invoke-SqlBackup([switch] $Skip)
function Test.Invoke-SqlBackup([switch] $Category_InvokeSql)
{
    #Arrange
    $server = get-sqlserver "$env:computername\sql2k8"
    #Act
    Invoke-SqlBackup "$env:computername\sql2k8" "pubs"  "$($server.BackupDirectory)\pubs.bak" -force
    $Actual = $?
    Write-Debug $Actual
    #Assert
    Assert-That -ActualValue $Actual -Constraint {$ActualValue}
}

xUnit ベースのフレームワークでは、アレンジ、アクト、アサートに従います。クリーン後のタスクを実行するための分解アクションもある場合があります。PSUnitまたはPesterに焦点を当てるのではなく、一般的な単体テストについて。xUnit/nUnit フレームワークの概念を読んでください。

于 2012-11-22T02:12:04.750 に答える