2012-02-15 237 views
0

所以,我已经有了一个JUnit测试(片段)关闭窗口,看起来像JUnit测试后

String buffer="Mary had a little lamb"; 
r.decodeSWT(buffer, false, new GraphDrawingForSWT()); 
assertTrue((r.getNumberOfNodesInGraph() == 8) && (r.getNumberOfEdgesInGraph() == 7)); 

我的问题是,decodeSWT方法打开呈现出图中的窗口,并且测试将不会继续进行,直到它已关闭。有没有一种最佳实践方式来覆盖测试中的这一点?这显然使自动运行测试变得很困难。

+0

在你的例子中什么是“r”?另外,我第二@DNA,你不能分开管理图表(和计数节点)的代码与显示它的代码吗? – phtrivier 2012-02-17 13:21:11

回答

0

这样的问题通常表明您的代码需要重构,以便逻辑部分(例如构造图)与GUI部件完全分离。然后,您可以通过输入字符串并测试图形输出(例如)来测试逻辑部分,然后通过打开一个GUI,给它一个图形,测试某些节点被显示(例如)和然后从测试代码中关闭GUI。