(前回とは違うパターンのソース記述)
・テストコード
1、テストコードのImportsに「NUnit.Extensions.Forms」を追加する
2、NUnitForms用のテストコードを書く
(今回はテストメソッドはPublicが1個、他はPrivateにする)
(画面2個、メッセージボックス1個使用し、画面遷移する)
何かフォームを2個作成する
プロパティ類は特にいじらない
・ソリューション構成
・ソースコード
「Form1.vb」
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.ShowDialog()
End Sub
End Class
「Form2.vb」
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show("TEST", "TITLE", MessageBoxButtons.OK)
End Sub
End Class
「TestClass.vb」
Imports System
Imports System.Reflection
Imports System.Windows.Forms
Imports NUnit.Framework
Imports NUnit.Extensions.Forms
<TestFixture()> _
Public Class TestClass
Inherits NUnitFormTest ' NUnitFormTestクラスからの継承
' これがないとうまくいかない
Public Overrides ReadOnly Property UseHidden() As Boolean
Get
Return False
End Get
End Property
' 別ウィンドウを表示させる
<[Test]()> _
Public Sub Test()
Dim target As Form1 = New Form1()
target.Show()
' Form2は"Name"プロパティの値、クラス名がセットされる(VS2005)
ExpectModal("Form2", "Form2Test")
Dim button1 As ButtonTester = New ButtonTester("Button1")
button1.Click()
' Assert. テスト内容
target.Close()
End Sub
' メッセージボックスを表示させる(Private)
Private Sub Form2Test()
' TESTはメッセージボックスのキャプション
ExpectModal("TITLE", "MsgBoxClickOk")
' Form2は"Name"プロパティの値、クラス名がセットされる(VS2005)
Dim Form2 As FormTester = New FormTester("Form2")
Dim button1 As ButtonTester = New ButtonTester("Button1", "Form2")
button1.Click()
' Assert. テスト内容
Form2.Close()
End Sub
' メッセージボックスのメッセージを取得して正しいか確認(Private)
Private Sub MsgBoxClickOk()
Dim mbx As MessageBoxTester = New MessageBoxTester("TITLE")
Assert.AreEqual("TEST", mbx.Text)
' TESTはメッセージボックスのキャプション
mbx.ClickOk()
End Sub
End Class
画面を遷移させる時、次に開いた画面はNUnitForms側で認識しないらしい
なので、次に開く画面をテスターに認識させる為の処理がいる
ExpectModal("Form2", "Form2Test") ← 次に開く画面名称と、テストするメソッド名を指定する
ExpectModal("TITLE", "MsgBoxClickOk") ← メッセージボックスの場合、タイトル名称とテストメソッド名を指定する
・参考URL
http://nunitforms.sourceforge.net/
http://www.atmarkit.co.jp/fdotnet/nagile/nagile03/nagile03_02.html
http://jinblog.at.webry.info/201003/article_2.html
http://jinblog.at.webry.info/201003/article_1.html
http://jinblog.at.webry.info/201003/article_3.html
http://blogs.yahoo.co.jp/dk521123/21717521.html
↓クリックで、このブログの評価が上がり執筆者が喜びます
にほんブログ村
0 件のコメント:
コメントを投稿