我正在尝试通过我们的一个内部应用程序运行一组测试用例。我需要能够自动化这些测试并通过命令行运行它们并记录各种事情。问题是现有代码没有将视图与控制器分开,并且在要求用户单击按钮的所有地方都抛出 MessageBoxes 和 Alerts(在我的情况下只是 OK/CONTINUE)。目前,已经决定引入状态标志,这将有助于确定应用程序正在运行的上下文,以便人们可以决定是执行 aConsole.WriteLine()
还是 a MessageBox.Show()
。但正如你可以想象的那样,这已经导致了很多变化和脏 if-else 块。
可悲的是,在这个阶段坐下来将逻辑与视图分开看起来并不可行。所以我想知道是否有办法检测应用程序正在执行的上下文。我想将每个 MessageBox() 调用替换为 Notify() 调用,它本身可以检测上下文 - 无论是在命令提示符下显示输出还是弹出表单。
EDIT_1:也欢迎任何其他建议这样做。