2013-04-09 7 views
0

다른 인터페이스 응답에 대한 테스트를 작성하기 위해 FEST 스윙 테스트 슈트를 사용하려고합니다. 단일 클래스 상황에서는 아주 잘 작동합니다. 그러나 이제는 GMockTestCase를 사용하고있는 상황이 있습니다. 반환 된 모든 조롱 된 메서드 호출을 설정 한 다음 내 "재생"인클로저를 만들지 만 내 어설 션은 실패합니다. Mocked 클래스없이 동일한 테스트를 실행하면 테스트가 통과됩니다. 물건을 설치해야하는 순서가 있습니까? 어떤 도움을 주시면 감사하겠습니다Groovy의 GMock 프레임 워크에서 FEST 테스트를 사용하는 방법

@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)) 
    } 
} 

:

여기 내 테스트입니다.

답변

0

비슷한 질문을했을 수도있는 사람들을 위해서 제 질문에 대답 해주세요. 대답은 테스트를 단일 사용자 입력 상호 작용으로 제한하는 것이 었습니다. 위의 두 가지를 시뮬레이션하려고했습니다. 상호 작용은 한 패널에서 두 번째 패널로 이동하고 두 번째 패널에서 상호 작용합니다. 사용자 상호 작용의 후반 부분을 테스트하기 위해 상호 작용을 제한하는 것은 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)는 하나의 행동

에 테스트를 분리