2009-08-26 4 views
1

나는 그리폰과 놀고있다. 모든 것은 테스트를 제외하고는 매끄럽게 작동합니다.easyb로 Griffon 응용 프로그램을 효율적으로 테스트하려면 어떻게해야합니까?

저는 Griffon 어플리케이션 전체를 시작하지 않고 별도의 컨트롤러 메소드를 테스트하고 싶습니다. 이렇게하려면 컨트롤러에 사용되는 뷰와 모델을 조롱해야만하는 것 같습니다 ( ). Expando 객체를 조롱하는 때문에 컨트롤러 메소드 및 easyb을 사용한 작업에 대한 테스트가 너무 길어지고 있습니다.

application(title: 'MyProject', 
    pack: true, 
    locationByPlatform: true, 
    iconImage: imageIcon('/griffon-icon-48x48.png').image, 
    iconImages: [imageIcon('/griffon-icon-48x48.png').image, 
      imageIcon('/griffon-icon-32x32.png').image, 
      imageIcon('/griffon-icon-16x16.png').image] 
) { 
tableLayout { 
tr { 
    td(align: "CENTER") { 
    textField(id: 'textfield', 
      text: "Hello") 
    } 
} 

tr { 
    td(align: "CENTER") { 
    button(text: "check", 
      actionPerformed: controller.checkForGreeting 
    ) 
    } 
    } 
} 
} 

MyProjectController.groovy

class MyProjectController { 
def model 
def view 

void mvcGroupInit(Map args) { 
} 

def checkForGreeting = { evt = null -> 
    return view.textfield.text == "Hello" 
} 

MyProjectModel.groovy

class MyProjectModel {} 

easyb 시험

MyProjectView.groovy : 여기서

간단한 예이다 MyProje ctStory.story

scenario "Hello Check", { 
    def view 
    MyProjectController controller = new MyProjectController() 

given "A view with 'Hello' in the textfield", { 
    view = new Expando() 
    def textfield = new Expando() 
    textfield.text = "Hello" 
    view.textfield = textfield 
    controller.view = view 
} 
then "checkForGreeting should return true", { 
    controller.checkForGreeting().shouldBe(true) 
} 
} 

그리폰 컨트롤러 방법을 테스트하는 간단한 방법이 있습니까? 아마도 으로보기를 조롱하기위한 더 나은 솔루션을 사용하고 있을까요?

답변

1

Griffon에는 현재 Grails에서 볼 수있는 것과 같은 조롱 플러그인/시설이 없습니다. 컨트롤러 테스트는 일반적으로 통합 테스트에서 수행됩니다 (즉, create-mvc 템플릿이 테스트/통합하에 테스트를 배치하는 이유입니다).

그러나 조롱 시설은 향후 릴리스에 대해 의문의 여지가 없습니다.