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