【发布时间】:2016-04-12 11:47:10
【问题描述】:
我正在学习如何进行单元测试,在这里完成 newb。我构建了这个函数,它返回一个给定作为字符串传递的初始日期的日期数组。
我看到了它生成的骨架代码。我理解它在做什么,但我无法想出一种方法来对其进行编码,以使预期值是一个包含 any 数量的 whatever 日期的数组。
有什么建议吗?
我写的函数:
Public Function getHolidayList(ByVal startingDate As String) As Date()
Const DATE_FORMAT As String = "mm/dd/yyyy"
Dim ERROR_DATE() As Date = {Date.Parse("06/06/6666")}
Dim commandText As String
Dim command As OracleCommand
Dim dataSet As New DataSet
Dim connection As OracleConnection
If startingDate <> Nothing AndAlso startingDate <> "" AndAlso Not startingDate.Equals(DBNull.Value) Then
startingDate = startingDate.Trim
Try
Date.Parse(startingDate)
Catch ex As Exception
Return ERROR_DATE
End Try
Else
Return ERROR_DATE
End If
If ConfigurationManager.AppSettings("SYSTEM") = "TEST" Then
connection = New OracleConnection(ConnectionStrings("HRTEST").ConnectionString)
Else
connection = New OracleConnection(ConnectionStrings("HRIS").ConnectionString)
End If
commandText = "select holiday.h_date from holiday_t1 holiday where holiday.h_date between " & _
"to_date('" & startingDate & "', " & DATE_FORMAT & "') and " & _
"to_date('" & Date.Now.ToShortDateString & ", " & DATE_FORMAT & "')"
command = New OracleCommand(ConfigurationManager.AppSettings("HR_SCHEMA"), connection)
command.CommandType = CommandType.Text
command.CommandText = commandText
connection.Open()
Dim dataAdapter As New OracleDataAdapter(command)
dataAdapter.Fill(dataSet)
connection.Close()
connection.Dispose()
Dim holidays(dataSet.Tables(0).Rows.Count - 1) As Date
For i As Integer = 0 To dataSet.Tables(0).Rows.Count - 1
holidays(i) = dataSet.Tables(0).Rows(i).Item(0)
Next
Return holidays
End Function
自动生成的骨架单元测试代码:
<TestMethod(), _
HostType("ASP.NET"), _
AspNetDevelopmentServerHost("C:\Users\url\here", "/projectRootDirectory"), _
UrlToTest("http://localhost/projectRootDirectory")> _
Public Sub getHolidayListTest()
Dim target As fmlaDB_Accessor = New fmlaDB_Accessor ' TODO: Initialize to an appropriate value
Dim startingDate As String = String.Empty ' TODO: Initialize to an appropriate value
Dim expected() As DateTime = Nothing ' TODO: Initialize to an appropriate value
Dim actual() As DateTime
actual = target.getHolidayList(startingDate)
Assert.AreEqual(expected, actual)
Assert.Inconclusive("Verify the correctness of this test method.")
End Sub
【问题讨论】:
标签: .net arrays vb.net unit-testing date