我正在使用Nunit和NCrunch为Windows窗体用户控件编写测试。我希望测试能做到这样的事情:
<Test()> _
<TestCase("1")> _
<TestCase("2")> _
Public Sub Test(Value As String)
Dim CtlObj As MyUserControl
Using FormObj = New TEST_Form()
CtlObj = New MyUserControl()
CtlObj.Text = Value
FormObj.Controls.Add(CtlObj)
FormObj.Show()
' So test user can see the form.
Thread.Sleep(1000 * 5)
Assert.That(...)
End Using
End Sub
上面的代码显示了表单,但是包含用户控件的区域是透明的,我看到了表单背后的图像。
我尝试过:刷新,SuspendLayout&amp; ResumeLayout。我找不到任何会显示用户控件的内容。
如果我使用ShowDialog,则会显示用户控件,但当然代码会等待用户点击某些内容以关闭表单。
我希望我的测试能够在不需要用户操作的情况下自动运行。
我更新了测试代码以使用BackgroundWorker。 BackgroundWorkder调用ShowDialog。主代码会休眠几秒钟,然后关闭关闭表单的BackgroundWorker。
但是使用背景工作者似乎很笨拙。
有没有办法显示没有后台工作者的表单和用户控件