| 月 | 火 | 水 | 木 | 金 | 土 | 日 |
|---|---|---|---|---|---|---|
| 29 | 30 | 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | 1 | 2 |
やっと買った。やっと読んだ。
.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でリコンパイルすりゃいいのかなぁ・・・。
このページにリンクを張りたい人はご自由にどうぞ。
疑問・感想・要望・不満・文句・愚痴等々ありましたら↓までメール下さいましm(_ _)m