2011年2月20日日曜日

NUnitの開発環境構築

今、VB.NETで使用しているテストツール
VBだけじゃなくビジュアルスタジオで「.Net」開発する時に使う


・環境
[VisualStudio]
使用バージョン:2005 Standard Edition

[Nunit]
使用バージョン:NUnit-2.5.4.10098
ダウンロードサイト:http://www.nunit.org/download.html
現時点で、最新バージョンは「NUnit-2.5.9.10348」だが、なぜ2.5.4を落としたのかは忘れた。
問題なく動いているのでヨシ!


・インストール手順
ダウンロード後、インストールの実行。以上。


・設定方法
1、ビジュアルスタジオを起動
2、何かプロジェクトを作成(既存のプロジェクトでも可)
3、メニューバーの「プロジェクト」 → 「参照の追加」を選択
4、.NETタブの中を検索し”Nunit.framework”を選択

-----------------

NUnitの使用例 

・作成手順
1、本番で使用するWindowsアプリケーションプロジェクトとして用意
2、テスト用にクラスライブラリプロジェクトを用意
3、二つのプロジェクトを1つのソリューションに統合する
    a)ソリューションエクスプローラーのソリューション名で右クリック
    b)既存のプロジェクトを追加(プロジェクト名ではなくexeを直接指定する事)








4、クラスライブラリにテストコードを記述していく


・注意点
Publicのメソッドに対してテストするのが一般的だと思われ
Privateのメソッドに対してもテストできるが記述が少し面倒になるし、よくわからん


・前提条件
アプリの名称:Client_App
ファイル名:Client_App.vb
フォームには何のパーツも追加しない



















 ・ソリューション構成













・ソースコード
テストコードのメソッド名は日本語で書いたほうが分かりやすい。
メソッド名の一覧が仕様書になる。

 「Client_App.vb」
Public Class Client_App
    Private Sub Client_App_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim recorder As MaxDataSizeRecorder = New MaxDataSizeRecorder()
        Dim aaa As String
        aaa = ""
   End Sub
End Class

 「MaxDataSizeRecorder.vb」
Public Class MaxDataSizeRecorder
    Public Name As String = "NoName"
    Public Point As Integer = 0

    Public Sub SetPoint(ByVal _name As String, ByVal _point As Integer)
        If Me.Point >= _point Then
            Exit Sub
        End If
        Me.Name = _name
        Me.Point = _point
    End Sub

    Public Function IsHighest(ByVal _point As Integer) As Boolean
        Return Me.Point < _point
    End Function
End Class

 「MaxDataSizeRecorderTest.vb」
Imports NUnit.Framework
Imports Client_App

<TestFixture()> _
Public Class 積算入力画面テスト
    <Test()> _
    Public Sub コンストラクタ()
        Dim recorder As MaxDataSizeRecorder = New MaxDataSizeRecorder()
        Assert.AreEqual("NoName", recorder.Name, "recorder.Name")
        Assert.AreEqual(0, recorder.Point, "recorder.Point")
   End Sub

    <Test()> _
    Public Sub ポイントの設定()
        Dim recorder As MaxDataSizeRecorder = New MaxDataSizeRecorder()
        recorder.SetPoint("Taro", 1234)
        Assert.AreEqual("Taro", recorder.Name, "recorder.Name" & " = Taroになってないよ?")
        Assert.AreEqual(1234, recorder.Point, "recorder.Point")
        recorder.SetPoint("Jiro", 1233)
        Assert.AreEqual("Taro", recorder.Name, "recorder.Name")
        Assert.AreEqual(1234, recorder.Point, "recorder.Point")
        recorder.SetPoint("Saburo", 1235)
        Assert.AreEqual("Saburo", recorder.Name, "recorder.Name")
        Assert.AreEqual(1235, recorder.Point, "recorder.Point")
    End Sub

    <Test()> _
    Public Sub 最大値比較テスト()
        Dim recorder As MaxDataSizeRecorder = New MaxDataSizeRecorder()
        recorder.SetPoint("Taro", 1234)
        Assert.AreEqual(True, recorder.IsHighest(1235), "recorder.IsHighest(1235)")
        Assert.AreEqual(True, Not recorder.IsHighest(1234), "!recorder.IsHighest(1234)")
        Assert.AreEqual(True, Not recorder.IsHighest(1233), "!recorder.IsHighest(1233)")
    End Sub
End Class


   ↓クリックで、このブログの評価が上がり執筆者が喜びます
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
  にほんブログ村

0 件のコメント: