Я пытаюсь реорганизовать существующее приложение WinForms для использования шаблона Model-View-Presenter (MVP) в первый раз, чтобы я мог написать модульные тесты. У меня есть много существующего кода, подобного следующему, в котором нет UI / View, о котором нужно беспокоиться, но мне нужно написать модульные тесты для этой функции проверки, фактически не вызывая вызов базы данных. Как я должен разделить это для классов Model vs Presenter? Я не уверен, как извлечь класс модели из этого:
Friend Sub ValidateAmountNotEntered(exp() As String, paramString As String, exp2() As String, paramString2 As String)
Dim SqlStmt As String = "[Long complex parameterized query to
Select values From 4 tables (T1 T2 T3 T4)
Where T1.Column1 = ?
And T2.Column1 In (" & paramString & ")
And T4.Column1 In (" & paramString2 & ") ]"
Dim com As New OdbcCommand With {
.Connection = New OdbcConnection(CommonUtilities.GetODBCConnectionString()),
.CommandText = SqlStmt
}
com.Parameters.AddWithValue("?", CStr(GlngNum))
For Each parameter As String In exp2
com.Parameters.AddWithValue("?", parameter.Replace("'", String.Empty))
Next
For Each parameter As String In exp
com.Parameters.AddWithValue("?", parameter.Replace("'", String.Empty))
Next
Dim adap As OdbcDataAdapter = New OdbcDataAdapter(com)
Dim rsRates As New DataSet("dsl")
adap.Fill(rsRates)
For Each iteration_row As DataRow In rsRates.Tables(0).Rows
AddErrorItem(iteration_row.Item("T1.Column1"), "R", "Amount for " & iteration_row.Item("T4.Column1").Trim() & "; " & iteration_row.Item("T3.Column1").Trim() & " not entered")
Next iteration_row
End Sub
Может кто-нибудь помочь или привести пример?