2010-08-06 75 views
0

我有一个测试,有时在requireSelected()调用失败,我不明白为什么。Java/Swing FEST测试失败荒谬

public void testSimple() { 
    JRadioButtonFixture fixture = getFixture(); 
    fixture.check(); 
    fixture.requireSelected().requireVisible(); 
} 

我试图改变的代码在EDT而不是在测试中的主力,但没有一个固定的方法运行被允许从它似乎EDT调用。

为什么测试失败?

更新:更多详细信息:

没有在任何setUp()

这里的故障跟踪:

Java.lang.AssertionError: [javax.swing.JRadioButton[name='button', text='text', selected=false, enabled=true, visible=true, showing=true] - property:'selected'] expected:<true> but was:<false> 
at org.fest.assertions.Fail.fail(Fail.java:87) 
at org.fest.assertions.Fail.failIfNotEqual(Fail.java:60) 
at org.fest.assertions.BooleanAssert.isEqualTo(BooleanAssert.java:129) 
at org.fest.swing.driver.AbstractButtonDriver.assertThatButtonIsSelected(AbstractButtonDriver.java:142) 
at org.fest.swing.driver.AbstractButtonDriver.requireSelected(AbstractButtonDriver.java:127) 
at org.fest.swing.fixture.JRadioButtonFixture.requireSelected(JRadioButtonFixture.java:288) 
+0

需要...更多...上下文... – 2010-08-06 01:57:54

+0

从堆栈跟踪中,我们可以看到除了单选按钮没有被选中(selected = false)的事实之外,没有什么有趣的,因此requireSelected ()失败!如果您还向我们展示了getFixture()方法,可能会很有趣。 – jfpoilpret 2010-08-09 03:11:30

+0

'getFixture()'只是'new JRadioButtonFixture(dialogFixture.robot,“dialog7button12”);' – Mike 2010-08-09 21:24:27

回答

0

您需要指定测试是如何失败的,也许显示设置()方法。它可以基本上与你提供的信息有关。

1

麦克,

我最近和阿博特,FEST前体, 和一些故障测试occourred你以同样的方式。 在我的情况下,在 模拟radio.check()和验证者 radio.requireSelected()之间添加Thread.sleep(300)解决了该问题。

试试看。

+1

而不是Thread.sleep()尝试getRobot()。waitForIdle(),它是一个FEST实用程序方法,它将等待AWT事件队列清空在继续之前。 – 2012-05-31 12:31:05