Imports NUnit.Framework
Public Class ExceptionTest
Private Shared Function throwArgumentException(ByVal obj As Object) As String
Throw New ArgumentException("VarType Error: " & TypeName(obj))
End Function
Public Sub ArgumentExceptionTest(ByVal obj As Object, ByVal expected As String)
Dim ex = Assert.Throws(Of ArgumentException)(
Function() throwArgumentException(obj)
)
Assert.That(ex.Message = expected)
End Sub
End Class
Imports FizzBuzz
Imports NUnit.Framework
Public Class FizzBuzzerTest
'Fizz Buzz - 数字を数え、3の倍数でFizz、5の倍数でBuzz、3と5の倍数でFizzBuzz
Public Sub SayNextTest_1回目は1_1()
Dim obj As FizzBuzzer = New FizzBuzzer()
Dim result As String = obj.SayNext()
Assert.AreEqual("1 - 1", result) 'Assert.AreEqual(期待値, 検査したい値)
End Sub
End Class
Public Class FizzBuzzerTest
'同じような処理をするテストはTestCaseを使うことでまとめて書ける
'1のとき
'2のとき
'3のとき
Public Sub SayNextTest(ByVal count As Integer, ByVal expected As String)
Dim obj As FizzBuzzer = New FizzBuzzer()
Dim result As String = Nothing
For i As Integer = 1 To count
result = obj.SayNext()
Next
Assert.AreEqual(expected, result) 'Assert.AreEqual(期待値, 検査したい値)
End Sub
End Class
Public Class Log
Public Shared Sub Write(
ByVal message As String,
ByVal traceEventType As String,
Optional ByVal isShowMsgBox As Boolean = False
)
Dim severity As System.Diagnostics.TraceEventType =
System.Enum.Parse(GetType(System.Diagnostics.TraceEventType), traceEventType)
My.Application.Log.WriteEntry(My.Computer.Clock.LocalTime.ToString & "> " & message, severity)
My.Application.Log.TraceSource.Flush()
'下記表示判定は何パターンか試した結果ですが正しいかの確認は出来ていません。
If My.Application.Log.TraceSource.Switch.Level > severity Then
showMsgBox(message, severity, traceEventType, isShowMsgBox)
End If
End Sub
Private Shared Sub showMsgBox(
ByVal message As String,
ByVal severity As System.Diagnostics.TraceEventType,
ByVal title As String,
Optional ByVal isShowMsgBox As Boolean = False
)
If isShowMsgBox Then
Dim msgBoxButtons As MsgBoxStyle
Select Case severity
Case Diagnostics.TraceEventType.Critical, Diagnostics.TraceEventType.Error
msgBoxButtons = MsgBoxStyle.Critical
Case Diagnostics.TraceEventType.Warning
msgBoxButtons = MsgBoxStyle.Exclamation
Case Else
msgBoxButtons = MsgBoxStyle.Information
End Select
MsgBox(message, msgBoxButtons, title)
End If
End Sub
Public Shared Sub Verbose(
ByVal message As String,
Optional ByVal isShowMsgBox As Boolean = False
)
Log.Write(message, "Verbose", isShowMsgBox)
End Sub
Public Shared Sub Info(
ByVal message As String,
Optional ByVal isShowMsgBox As Boolean = False
)
Log.Write(message, "Information", isShowMsgBox)
End Sub
Public Shared Sub Warn(
ByVal message As String,
Optional ByVal isShowMsgBox As Boolean = False
)
Log.Write(message, "Warning", isShowMsgBox)
End Sub
Public Shared Sub Err(
ByVal message As String,
Optional ByVal isShowMsgBox As Boolean = False
)
Log.Write(message, "Error", isShowMsgBox)
End Sub
Public Shared Sub Exception(
ByVal ex As Exception,
ByVal message As String,
Optional ByVal isShowMsgBox As Boolean = False
)
message &= System.Environment.NewLine &
" [例外内容] " & ex.Message & System.Environment.NewLine &
" [スタックトレース] " & System.Environment.NewLine & ex.StackTrace
Log.Err(message, isShowMsgBox)
End Sub
End Class