对话框的断言功能

时间:2009-11-18 18:21:15

标签: unit-testing

在我的应用程序中有3个文本框和一个按钮。如果用户未填写任何这些文本框并点击该按钮,则会向用户显示一个消息框,指出未输入特定文本框。

现在我如何使用Assert确认是否弹出了消息框?

提前感谢您的回答。

1 个答案:

答案 0 :(得分:0)

对于这种GUI单元测试,更清晰的解决方案是抽象界面背后的UI副作用。

所以不要像以下那样调用:

ShowErrorMessage("This is bad");

您创建一个负责显示对象的界面

public interface MessageShower {
   public function showMessage(String msg);
}

在现实生活中,您的代码将使用具体的实现:

public class ConcreteMessageShower {
   public function showMessage(String msg) {
     ShowErrorMessage(msg);
   }
}

但是在单元测试中,您将使用虚假实现,存根或模拟。

这实际上是“如何测试UI副作用?”的一般问题,答案是:“你没有!” ;)

希望这有帮助。