在测试弹出表单的按钮单击事件时忽略Form.ShowDialog()?

时间:2011-02-09 14:44:07

标签: winforms nunit

我想问一下如何测试按钮点击事件,您希望在显示表单后检查结果。我正在使用NUnit进行测试。我创建了一个扩展方法来显示如下表单,尝试过不同的方法,比如检查Debugger.IsAttached?;

    public static void ShowFormDialog(this Form form)
    {
        if(Debugger.IsAttached)
            form.ShowDialog();
    }

但是在运行我的测试时,这似乎仍会弹出表单。还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

您的设计可能需要一些工作。你在测试什么?处理表单事件的表单或类?如果这两者没有分开,那应该是。

如果是后者,那么你应该使用依赖注入,这样你就可以存根表单,并以自己的方式引发事件。

使用像Debugger.IsAttached这样的条件不应该在没有充分理由的情况下使用(还没有看到足够好的理由)。

此致 的Morten