我刚刚在Visual Studio .NET中发现了单元测试项目,并且正在使用测试方法来设置我开发的全局代码的示例.
一些全局方法涉及显示可重用的对话框,如日期选择器和输入框.麻烦的是,有时形式会显示,有时则不会.
我认为这与模态有关,因为我有一个可以模态或非模态显示的报表预览表单.当我以非模态显示时,它不会显示.当我以模态显示它时,确实如此.
尝试我的输入框永远不会起作用:
string input = ""; using (InputBox box = new InputBox(Title,Prompt,Default)) { DialogResult result = box.ShowDialog(); input = box.txtInput.Text.Trim(); } return input;
执行在“box.ShowDialog()”行停止,此时我可以检查框并看到它的尺寸,位置和可见性都已正确配置 – 但我看不到表格.我必须取消测试以阻止一切.
我喜欢使用单元测试项目作为游乐场并展示现有代码,但如果我无法显示某些表单,它似乎非常有限.我意识到这不是真正的单元测试的意思,但我希望我能用这种方式构建一个有趣的小沙箱,以帮助我的开发人员加快速度.
基于单个表单属性,我终于取得了一些成功(并且缺乏成功):ShowInTaskbar.
当表单将该属性设置为true时,此类表单将不会显示单元测试方法.当该属性为false时,将显示所有表单.所以,据我所知,这是规则,以确保表单可以从单元测试中显示:
>应将表单创建为项目中的标准Windows窗体项.
>表单应将其ShowInTaskbar属性设置为FALSE.
>表单需要以模态方式显示(即使用ShowDialog()).
这让我可以显示和测试我的所有实用工具表单,如日期选择器和登录屏幕.