2010-08-06 87 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