Java 如何将FEST测试与Groovy';s-GMock框架
我试图使用FEST swing测试套件为不同的接口响应编写测试。在单班情况下,它工作得非常好。然而,现在我遇到了一种情况,我正在使用GMockTestCase。我设置了所有带有返回的模拟方法调用,然后创建了“播放”附件,但断言失败。如果在没有模拟类的情况下运行相同的测试,则测试通过。是否有一个必须设置的顺序 这是我的测试:Java 如何将FEST测试与Groovy';s-GMock框架,java,groovy,fest,swingbuilder,Java,Groovy,Fest,Swingbuilder,我试图使用FEST swing测试套件为不同的接口响应编写测试。在单班情况下,它工作得非常好。然而,现在我遇到了一种情况,我正在使用GMockTestCase。我设置了所有带有返回的模拟方法调用,然后创建了“播放”附件,但断言失败。如果在没有模拟类的情况下运行相同的测试,则测试通过。是否有一个必须设置的顺序 这是我的测试: @Test void testsShouldReturnRadioButtonSelectedFromClassGroupButtonGroupKeyPressed(){
@Test
void testsShouldReturnRadioButtonSelectedFromClassGroupButtonGroupKeyPressed(){
def mockClassMap = getClassMap()
mockPG.getAvailibleClass().returns(mockClassMap)
panel.plyGen = mockPG
panel.raceValue = 1
panel.genderValue = 2
panel.gPane.mainM.setVisible(false)
panel.gPane.createPlayerStats.setVisible(true)
//panel.plyGen = new PlayerGenerater()
play{
festSetUp(panel.gPane.chooseClass)
panel.gPane.reRollDice.requestFocusInWindow()
// simulate key stroke to change panel view
robot.keyPress(VK_A)
robot.keyRelease(VK_A)
// simulate key stroke to select radio button option
robot.keyPress(VK_M)
robot.keyRelease(VK_M)
assertThat(panel.classValue, is(3))
}
}
任何帮助都将不胜感激。请回答我自己的问题,以方便那些可能有类似问题的人。答案是将测试限制在单用户输入交互。上面我试着模拟两件事。从一个面板屏幕移动到第二个面板屏幕的交互以及在第二个面板上的交互。限制交互只测试用户交互的后半部分是允许FEST正确识别交互的。本例中通过测试的结果代码为:
def mockClassMap = getClassMap()
panel.plyGen = mockPG
mockPG.getAvailableClass().returns(mockClassMap)
panel.raceValue = 1
panel.genderValue = 2
panel.gPane.mainM.setVisible(false)
panel.gPane.chooseClass.setVisible(true)
//panel.plyGen = new PlayerGenerator()
play{
festSetUp(panel.gPane.chooseClass)
/*additional methods that need to be triggered in order to
*set up the panel for actual test
*/
panel.setClassGroup()
gPane.classGroupPanel.revalidate()
gPane.chooseClass.setVisible(true)
//simulate user interaction
robot.keyPress(VK_M)
robot.keyRelease(VK_M)
//assert results
assertThat gPane.selectClass.getSelection(), is(gPane.monk.getModel())
}
因此,基本单元测试101将测试隔离为单个动作