1
我在接管包含一個控制檯應用程序項目,該項目運行作爲我們的生產服務器調度任務的遺留系統的過程。主要生產每日和每週報告,做一些數據庫維護等單元測試Windows計劃任務控制檯應用程序
的控制檯應用程序的「主」手柄輸入命令行參數,並確定哪幾個不同的程序來執行。喜歡的東西
模塊MainModule
Public Sub Main()
'--- Check if command line arguments were specified
Dim args() As String = Environment.GetCommandLineArgs()
If args.Length > 1 Then
ConsoleMain(args)
End If
End Sub
Public Sub ConsoleMain(ByVal args() As String)
Dim rc As New Coordinator(enableEmails_)
Try
Dim arg_ As String = args(1)
Dim success_ As Boolean = True
Select Case arg_.ToUpper()
Case TaskType.OrderIntegration
success_ = rc.OrderIntegration()
Case TaskType.Motivators
success_ = rc.MotivatorsCreateFile(New CustomerMotivatorsManager)
... repeat for each of the various "Task Types"
前端模塊
我的問題是什麼: - 這是一個控制檯應用程序帶有main()和ConsoleMain(),我好像不具備我可以從測試中訪問的任何內容 - 即「Main」和「ConsoleMain」似乎無法訪問。我怎麼能單元測試這樣的事情,來測試「如果參數'x'被傳遞,函數'y'被稱爲」?
由於提前,
看來,它涉及到的主要在「模塊」是代替「類」。項目中其他類中的項目是可見的,在這個主要「模塊」中沒有任何內容。 我希望避免重構這個非常多,因爲它是一個非常明顯的生產工作。但是,將主邏輯提取到其自己的類中(以命令行參數作爲參數)是可能的。謝謝! – 2009-10-29 14:24:54
很酷。既然這讓你朝着正確的方向發展,你會把這個標記爲答案嗎? (或者至少給我一個upvote?)欣賞它! – 2009-10-30 02:19:45