Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将FEST测试与Groovy';s-GMock框架_Java_Groovy_Fest_Swingbuilder - Fatal编程技术网

Java 如何将FEST测试与Groovy';s-GMock框架

Java 如何将FEST测试与Groovy';s-GMock框架,java,groovy,fest,swingbuilder,Java,Groovy,Fest,Swingbuilder,我试图使用FEST swing测试套件为不同的接口响应编写测试。在单班情况下,它工作得非常好。然而,现在我遇到了一种情况,我正在使用GMockTestCase。我设置了所有带有返回的模拟方法调用,然后创建了“播放”附件,但断言失败。如果在没有模拟类的情况下运行相同的测试,则测试通过。是否有一个必须设置的顺序 这是我的测试: @Test void testsShouldReturnRadioButtonSelectedFromClassGroupButtonGroupKeyPressed(){

我试图使用FEST swing测试套件为不同的接口响应编写测试。在单班情况下,它工作得非常好。然而,现在我遇到了一种情况,我正在使用GMockTestCase。我设置了所有带有返回的模拟方法调用,然后创建了“播放”附件,但断言失败。如果在没有模拟类的情况下运行相同的测试,则测试通过。是否有一个必须设置的顺序

这是我的测试:

@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将测试隔离为单个动作