Java/Swing FEST测试荒谬地失败了
我有一个测试在调用Java/Swing FEST测试荒谬地失败了,java,swing,failing-tests,Java,Swing,Failing Tests,我有一个测试在调用requireSelected()时有时会失败,我不知道为什么 public void testSimple() { JRadioButtonFixture fixture = getFixture(); fixture.check(); fixture.requireSelected().requireVisible(); } 我尝试将代码更改为在EDT上运行,而不是在测试的主程序中运行,但似乎不允许从EDT调用任何fixture的方法 为什么这个测试失败了 更
requireSelected()
时有时会失败,我不知道为什么
public void testSimple() {
JRadioButtonFixture fixture = getFixture();
fixture.check();
fixture.requireSelected().requireVisible();
}
我尝试将代码更改为在EDT上运行,而不是在测试的主程序中运行,但似乎不允许从EDT调用任何fixture的方法
为什么这个测试失败了
更新:更多详细信息:
设置()中没有任何内容
以下是故障跟踪:
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)
Java.lang.AssertionError:[javax.swing.JRadioButton[name='button',text='text',selected=false,enabled=true,visible=true,showing=true]-属性:'selected']应为:但为:
位于org.fest.assertions.Fail.Fail(Fail.java:87)
在org.fest.assertions.Fail.failIfNotEqual上(Fail.java:60)
在org.fest.assertions.BooleanAssert.isEqualTo(BooleanAssert.java:129)
位于org.fest.swing.driver.AbstractButtonDriver.assertThatButtonIsSelected(AbstractButtonDriver.java:142)
在org.fest.swing.driver.AbstractButtonDriver.requireSelected上(AbstractButtonDriver.java:127)
在org.fest.swing.fixture.JRadioButtonFixture.requireSelected上(JRadioButtonFixture.java:288)
您需要指定测试失败的方式,并可能显示setUp()方法。它基本上可以是你提供的任何信息。迈克
我最近和阿博特一起测试,FEST的先驱,
有些失败也和你一样。
在我的例子中,添加一个线程。sleep(300)介于
模拟无线电检查()
和验证器
radio.requireSelected()
解决了该问题
试试看。Need…more…context…从堆栈跟踪中,我们看不到任何有趣的东西,除了您的单选按钮确实没有被选中(selected=false),因此requireSelected()失败是完全正常的!如果您还向我们展示了您的getFixture()方法,那可能会很有趣。getFixture()
只是新的jradiobuttonxture(dialogFixture.robot,“dialog7button12”)代码>您不直接(不是通过FEST)在JUnit线程上修改JComponents,是吗?另外,当测试失败时,FEST会截图,也许你会看到一些东西…而不是Thread.sleep()尝试getRobot().waitForIdle(),它是一个FEST实用程序方法,将等待AWT事件队列清空后再继续。