在测试中使用什么?显示还是ShowDialog?

时间:2016-01-25 15:35:38

标签: vb.net winforms

我正在使用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。

但是使用背景工作者似乎很笨拙。

有没有办法显示没有后台工作者的表单和用户控件

0 个答案:

没有答案