Last Update: 2002/05/17
2002年05月
293012345
6789101112
13141516171819
20212223242526
272829303112

2002年05月16日

買った。

藍より青し 1〜4巻 文月 晃

やっと買った。やっと読んだ。

NUnit。

.NET Framework用UnitTestツール を見つけた。 .NET用UnitTestって聞いたこと無かったし、自分で作るつもりでいたくらいなので、かなり嬉しい。 ってことで、早速試してみた。

試したときのサンプルソースとコンパイル・実行方法を載せて覚書としておこう。

まずは、テスト用クラス。 SampleクラスのSayHelloメソッドをテストするようにしてみた。

SampleTest.vb
---
Imports System
Imports NUnit.Framework

Public Class SampleTest
  Inherits TestCase

  '親クラスに引数を渡すだけ。
  Public Sub New(ByVal name As String)
    MyBase.New(name)
  End Sub

  Protected Overrides Sub Setup()
  End Sub

  'UnitTestを実行する人はコレを探すらしい。
  Shared ReadOnly Property Suite() As ITest
    Get
      Suite = New TestSuite(GetType(SampleTest))
    End Get
  End Property

  '実際のテストコード。Test〜で始まるPublicメソッドを実行してくれるそうな。
  Public Sub TestSayHello()
    Dim sample As New Sample

    Assertion.AssertEquals("Hello World!!", sample.SayHello("World"))
    Assertion.AssertEquals("Hello momo!!", sample.SayHello("momo"))
    Assertion.AssertEquals("Hello (none)!!", sample.SayHello(""))
    Assertion.AssertEquals("Hello (none)!!", sample.SayHello())
  End Sub
End Class

んでお次はテストされる側のクラス。 ホントは少しずつ作っていく過程を見せたいんだけど、とりあえず完成ソースを示してしまおう。

Sample.vb
---
Imports System

Public Class Sample
  Public Function SayHello(Optional ByVal user As String = "") As String
    If user = "" Then
      SayHello = "Hello (none)!!"
    Else
      SayHello = "Hello " + user + "!!"
    End If
  End Function
End Class

準備ができたらコンパイル。 NUnitのインストール先は環境に合わせて修正してくれい。

まずは、Sample.vbのコンパイル。

>vbc.exe /t:library Sample.vb

次に、SampleTest.vbのコンパイル。

>vbc.exe /t:library /libpath:"C:\Program Files\NUnit\bin" /r:NunitCore.dll,Sample.dll SampleTest.vb

環境変数LIBに追加しといてもいいかもしれない。

>SET LIB=%LIB%;C:\Program Files\NUnit\bin
>vbc.exe /t:library /r:NunitCore.dll,Sample.dll SampleTest.vb

そしたら、テスト。 ・・・その前に、NUnitのインストール先\binにパスを通しておこう。

>SET PATH=%PATH%;C:\Program Files\NUnit\bin
>NUnitConsole.exe SampleTest,SampleTest.dll
.
Time: 0.04

OK (1 tests)

ちなみにエラーのとき。 SayHelloメソッドで"(none)"の判別式をいれてなかった時に出たメッセージ。 ホントは<Hello (none)!!>ってしたいのに、今は<Hello !!>ってなっちゃってるよ〜って 教えてくれている。

>NUnitConsole.exe SampleTest,SampleTest.dll
.F
Time: 0.05
There was 1 failure:
1) TestSayHello(SampleTest) " expected:<Hello (none)!!> but was:<Hello !!>"

FAILURES!!!
Tests Run: 1, Failures: 1, Errors: 0

GUIな実行ツールあったんだけど、日本語表示に対応していないようなのが残念(T-T) 日本語版.NET Frameworkでリコンパイルすりゃいいのかなぁ・・・。

ほーむ。 | いぬ。 | さる。 | きじ。 || まえ。 | こんげつ。 | つぎ。
ももたろ<info@momo-lab.net>